/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 [96796] INFO: Waiting for application startup. {"timestamp": "2026-07-10T15:48:00.429393+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-07-10T15:48:09.946257+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 1 key(s) loaded"} INFO: 127.0.0.1:55345 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:55349 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-10T15:48:24.092704+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:7872eda9-8b02-4cb3-bfd1-04ae1d43acac:f8e669c3-f8df-47ce-8a93-40dca77cbaf5:outdoor_place_spec (Step outdoor_place_spec for f8e669c3-f8df-47ce-8a93-40dca77cbaf5)"} INFO: 127.0.0.1:55349 - "POST /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps/outdoor_place_spec?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-07-10T15:48:24.112183+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Invalidated 2 downstream steps from outdoor_place_spec (delete_cp=True): ['outdoor_place_canon', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T15:48:24.115564+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec started (run_id=285de152-5626-4d29-9e90-2c3e25a30836, model=gpt)"} {"timestamp": "2026-07-10T15:48:24.123360+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 00:48:24 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-07-10T15:48:24.140384+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-07-10T15:48:24.140631+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 10 deployments (1 Gemini keys, OpenAI=True)"} {"timestamp": "2026-07-10T15:48:24.140715+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'outdoor_place_spec': OpenAI strict 비호환 스키마(Gemini 팩 유래) — strict=False 강등, 준수는 local validation+retry 가 보증 (process 당 1회 로그)"} 00:48:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:48:24.152904+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55356 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55361 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:49:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:49:06.233229+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK OPIK: Started logging traces to the "theroad-scene-lab" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=06a51147-23c9-798d-8000-5e605243d63b&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. {"timestamp": "2026-07-10T15:49:06.238219+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:49:06.247864+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55405 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:49:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:49:26.740787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:49:26.743523+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:49:26.765260+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55413 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55418 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55425 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:50:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:50:34.694538+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:50:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:50:34.696686+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:50:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:50:34.720029+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55430 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:51:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:51:02.461526+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:51:02.464130+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:51:02.484761+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_place_spec] Tier 1 failed (Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'C1', 'evidence': {'quote_ko': '수리영 자전거를 타고 해안가 도로를 달린다.', 'scene_index': 6}, 'inferred': False, 'kind': 'road', 'name_en': 'Coastal road travelway', 'placement_en': 'The travelway forms the continuous land route through the site and runs along the coastal side occupied by the open sea.', 'temporal_scope': 'persistent_site'}, {'code': 'C2', 'evidence': {'quote_ko': '바다냄새를 실컷 마신다.', 'scene_index': 6}, 'inferred': False, 'kind': 'waterbody', 'name_en': 'Open sea beside the coastal road', 'placement_en': \"The open sea occupies one side of the site beside the coastal road and extends away from the road's coastal edge.\", 'temporal_scope': 'persistent_site'}] is too short), trying sanitized input"} 00:51:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:51:02.489066+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55438 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55448 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:51:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:51:28.892070+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:51:28.894655+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:51:28.914496+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_place_spec] Tier 2 sanitized failed (Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'R1', 'kind': 'road', 'name_en': 'coastal roadway', 'placement_en': \"The roadway extends linearly along the coast and serves as the site's camera and travel corridor, with the sea adjoining one side of its alignment.\", 'inferred': False, 'evidence': {'scene_index': 6, 'quote_ko': '수리영 자전거를 타고 해안가 도로를 달린다.'}, 'temporal_scope': 'persistent_site'}, {'code': 'R2', 'kind': 'sea', 'name_en': 'sea alongside the coastal roadway', 'placement_en': \"The sea lies along one side of the coastal roadway and remains continuously associated with the road's coastal alignment.\", 'inferred': False, 'evidence': {'scene_index': 6, 'quote_ko': '이어폰을 끼고 바다냄새를 실컷 마신다.'}, 'temporal_scope': 'persistent_site'}] is too short), trying GPT fallback"} 00:51:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:51:28.917360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:51:43.685594+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:51:43.687315+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:51:43.705656+00:00", "level": "ERROR", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_coastal_road 저작 실패", "exception": "Traceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 63, in _validate_local_schema\n jsonschema.validate(instance=payload, schema=response_schema)\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/jsonschema/validators.py\", line 1332, in validate\n raise error\njsonschema.exceptions.ValidationError: [{'code': 'A1', 'evidence': {'quote_ko': '수리영 자전거를 타고 해안가 도로를 달린다.', 'scene_index': 6}, 'inferred': False, 'kind': 'road', 'name_en': 'Coastal road travel corridor', 'placement_en': 'The coastal road forms the continuous landward travel axis and runs alongside the seaward coastal edge.', 'temporal_scope': 'persistent_site'}, {'code': 'A2', 'evidence': {'quote_ko': '이어폰을 끼고 바다냄새를 실컷 마신다.', 'scene_index': 6}, 'inferred': False, 'kind': 'coastline', 'name_en': 'Sea-facing coastal edge', 'placement_en': 'The coastal edge extends along the seaward side of the coastal road, with the sea beyond it.', 'temporal_scope': 'persistent_site'}] is too short\n\nFailed validating 'minItems' in schema['properties']['items']:\n {'type': 'array',\n 'minItems': 3,\n 'items': {'type': 'object',\n 'additionalProperties': False,\n 'required': ['code',\n 'kind',\n 'name_en',\n 'placement_en',\n 'inferred',\n 'evidence',\n 'temporal_scope'],\n 'properties': {'code': {'type': 'string',\n 'pattern': '^[A-Z][0-9]$',\n 'description': '대문자1+숫자1 마커 코드, 그룹 '\n '내 비중복, 존별 접두 분리'},\n 'kind': {'type': 'string', 'minLength': 2},\n 'name_en': {'type': 'string',\n 'minLength': 3,\n 'description': 'ID-free 서술명 — '\n '이름만으로 유일 구별 가능해야 '\n '함'},\n 'placement_en': {'type': 'string',\n 'minLength': 8},\n 'inferred': {'type': 'boolean',\n 'description': 'false=씬 원문/정정 '\n '근거 확정, true=물리 '\n '성립 최소 추정'},\n 'evidence': {'anyOf': [{'type': 'object',\n 'additionalProperties': False,\n 'required': ['scene_index',\n 'quote_ko'],\n 'properties': {'scene_index': {'type': 'integer'},\n 'quote_ko': {'type': 'string',\n 'minLength': 2}}},\n {'type': 'null'}],\n 'description': 'inferred=false '\n '면 필수 인용, true 면 '\n 'null'},\n 'temporal_scope': {'type': 'string',\n 'enum': ['persistent_site'],\n 'description': '시간 불변 확인 '\n '— 마커는 장소에 '\n '영속하는 요소만 '\n 'admitted '\n '(계약 '\n '감사용)'}}}}\n\nOn instance['items']:\n [{'code': 'A1',\n 'evidence': {'quote_ko': '수리영 자전거를 타고 해안가 도로를 달린다.',\n 'scene_index': 6},\n 'inferred': False,\n 'kind': 'road',\n 'name_en': 'Coastal road travel corridor',\n 'placement_en': 'The coastal road forms the continuous landward '\n 'travel axis and runs alongside the seaward coastal '\n 'edge.',\n 'temporal_scope': 'persistent_site'},\n {'code': 'A2',\n 'evidence': {'quote_ko': '이어폰을 끼고 바다냄새를 실컷 마신다.', 'scene_index': 6},\n 'inferred': False,\n 'kind': 'coastline',\n 'name_en': 'Sea-facing coastal edge',\n 'placement_en': 'The coastal edge extends along the seaward side of '\n 'the coastal road, with the sea beyond it.',\n 'temporal_scope': 'persistent_site'}]\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/outdoor_place_spec_step.py\", line 188, in _execute\n out = run_outdoor_place_spec(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/outdoor_place_spec.py\", line 297, in run_outdoor_place_spec\n result = call_structured_fn(\n ^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 690, in call_structured\n return _do_call(safe_system, sanitized_user, gpt_config, suffix_tag=\"gpt_fallback\")\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 646, in _do_call\n _validate_local_schema(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 66, in _validate_local_schema\n raise SchemaValidationError(\napp.modules.llm.safety.SchemaValidationError: Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': {'quote_ko': '수리영 자전거를 타고 해안가 도로를 달린다.', 'scene_index': 6}, 'inferred': False, 'kind': 'road', 'name_en': 'Coastal road travel corridor', 'placement_en': 'The coastal road forms the continuous landward travel axis and runs alongside the seaward coastal edge.', 'temporal_scope': 'persistent_site'}, {'code': 'A2', 'evidence': {'quote_ko': '이어폰을 끼고 바다냄새를 실컷 마신다.', 'scene_index': 6}, 'inferred': False, 'kind': 'coastline', 'name_en': 'Sea-facing coastal edge', 'placement_en': 'The coastal edge extends along the seaward side of the coastal road, with the sea beyond it.', 'temporal_scope': 'persistent_site'}] is too short"} {"timestamp": "2026-07-10T15:51:43.710979+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_harbor_commercial_street 매핑 씬 없음 — skip"} {"timestamp": "2026-07-10T15:51:43.711103+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_large_market 매핑 씬 없음 — skip"} 00:51:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:51:43.713492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55454 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55458 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55464 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:52:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:52:28.429082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:52:28.431646+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:52:28.460715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:52:41.351644+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:52:41.353939+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:52:41.375035+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_place_spec] Tier 1 failed (Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'P1', 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22}, 'inferred': False, 'kind': 'building exterior', 'name_en': 'Police station exterior', 'placement_en': 'The police station exterior forms the fixed building-side edge of the outdoor site and directly adjoins the exterior circulation area.', 'temporal_scope': 'persistent_site'}, {'code': 'C1', 'evidence': None, 'inferred': True, 'kind': 'circulation area', 'name_en': 'Exterior circulation area beside the police station', 'placement_en': 'This open circulation area lies immediately outside and alongside the police station exterior, providing the minimum fixed outdoor space required for access and movement beside the building.', 'temporal_scope': 'persistent_site'}] is too short), trying sanitized input"} 00:52:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:52:41.378327+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55472 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:52:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:52:53.155159+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:52:53.156387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:52:53.175214+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_place_spec] Tier 2 sanitized failed (Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'P1', 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22}, 'inferred': False, 'kind': 'building', 'name_en': 'police station exterior', 'placement_en': 'The police station exterior forms one fixed edge of the exterior forecourt.', 'temporal_scope': 'persistent_site'}, {'code': 'P2', 'evidence': None, 'inferred': True, 'kind': 'forecourt', 'name_en': 'police station exterior forecourt', 'placement_en': 'The exterior forecourt lies directly alongside the police station exterior and provides the minimum open ground needed for exterior access and movement.', 'temporal_scope': 'persistent_site'}] is too short), trying GPT fallback"} 00:52:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:52:53.177177+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55483 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:53:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:53:13.876627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:53:13.878499+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:53:13.898093+00:00", "level": "ERROR", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_police_station 저작 실패", "exception": "Traceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 63, in _validate_local_schema\n jsonschema.validate(instance=payload, schema=response_schema)\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/jsonschema/validators.py\", line 1332, in validate\n raise error\njsonschema.exceptions.ValidationError: [{'code': 'A1', 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22}, 'inferred': False, 'kind': 'building exterior', 'name_en': 'Police station building exterior', 'placement_en': 'The visible outer face of the police station directly adjoins the police station exterior area.', 'temporal_scope': 'persistent_site'}, {'code': 'A2', 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22}, 'inferred': False, 'kind': 'exterior area', 'name_en': 'Police station exterior area', 'placement_en': 'The outdoor area lies immediately outside and alongside the police station building exterior, providing the site space used by the scene.', 'temporal_scope': 'persistent_site'}] is too short\n\nFailed validating 'minItems' in schema['properties']['items']:\n {'type': 'array',\n 'minItems': 3,\n 'items': {'type': 'object',\n 'additionalProperties': False,\n 'required': ['code',\n 'kind',\n 'name_en',\n 'placement_en',\n 'inferred',\n 'evidence',\n 'temporal_scope'],\n 'properties': {'code': {'type': 'string',\n 'pattern': '^[A-Z][0-9]$',\n 'description': '대문자1+숫자1 마커 코드, 그룹 '\n '내 비중복, 존별 접두 분리'},\n 'kind': {'type': 'string', 'minLength': 2},\n 'name_en': {'type': 'string',\n 'minLength': 3,\n 'description': 'ID-free 서술명 — '\n '이름만으로 유일 구별 가능해야 '\n '함'},\n 'placement_en': {'type': 'string',\n 'minLength': 8},\n 'inferred': {'type': 'boolean',\n 'description': 'false=씬 원문/정정 '\n '근거 확정, true=물리 '\n '성립 최소 추정'},\n 'evidence': {'anyOf': [{'type': 'object',\n 'additionalProperties': False,\n 'required': ['scene_index',\n 'quote_ko'],\n 'properties': {'scene_index': {'type': 'integer'},\n 'quote_ko': {'type': 'string',\n 'minLength': 2}}},\n {'type': 'null'}],\n 'description': 'inferred=false '\n '면 필수 인용, true 면 '\n 'null'},\n 'temporal_scope': {'type': 'string',\n 'enum': ['persistent_site'],\n 'description': '시간 불변 확인 '\n '— 마커는 장소에 '\n '영속하는 요소만 '\n 'admitted '\n '(계약 '\n '감사용)'}}}}\n\nOn instance['items']:\n [{'code': 'A1',\n 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22},\n 'inferred': False,\n 'kind': 'building exterior',\n 'name_en': 'Police station building exterior',\n 'placement_en': 'The visible outer face of the police station '\n 'directly adjoins the police station exterior area.',\n 'temporal_scope': 'persistent_site'},\n {'code': 'A2',\n 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22},\n 'inferred': False,\n 'kind': 'exterior area',\n 'name_en': 'Police station exterior area',\n 'placement_en': 'The outdoor area lies immediately outside and '\n 'alongside the police station building exterior, '\n 'providing the site space used by the scene.',\n 'temporal_scope': 'persistent_site'}]\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/outdoor_place_spec_step.py\", line 188, in _execute\n out = run_outdoor_place_spec(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/outdoor_place_spec.py\", line 297, in run_outdoor_place_spec\n result = call_structured_fn(\n ^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 690, in call_structured\n return _do_call(safe_system, sanitized_user, gpt_config, suffix_tag=\"gpt_fallback\")\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 646, in _do_call\n _validate_local_schema(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 66, in _validate_local_schema\n raise SchemaValidationError(\napp.modules.llm.safety.SchemaValidationError: Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22}, 'inferred': False, 'kind': 'building exterior', 'name_en': 'Police station building exterior', 'placement_en': 'The visible outer face of the police station directly adjoins the police station exterior area.', 'temporal_scope': 'persistent_site'}, {'code': 'A2', 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22}, 'inferred': False, 'kind': 'exterior area', 'name_en': 'Police station exterior area', 'placement_en': 'The outdoor area lies immediately outside and alongside the police station building exterior, providing the site space used by the scene.', 'temporal_scope': 'persistent_site'}] is too short"} 00:53:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:53:13.904558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55491 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:53:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:53:37.620538+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:53:37.622678+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:53:37.640612+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_place_spec] Tier 1 failed (Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'C1', 'evidence': {'quote_ko': 'S#24. 해안가 / 소나기', 'scene_index': 24}, 'inferred': False, 'kind': 'shoreline', 'name_en': 'coastal shoreline edge', 'placement_en': 'The coastal shoreline edge extends alongside the seaward side of the coastal travel route and separates the landward camera area from the adjoining coastal water.', 'temporal_scope': 'persistent_site'}, {'code': 'R1', 'evidence': None, 'inferred': True, 'kind': 'road', 'name_en': 'shoreline-adjacent coastal travel route', 'placement_en': 'The coastal travel route runs parallel and immediately landward of the coastal shoreline edge, providing a continuous camera and bicycle path through the site.', 'temporal_scope': 'persistent_site'}] is too short), trying sanitized input"} 00:53:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:53:37.643930+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55496 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:53:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:53:56.211015+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:53:56.213562+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:53:56.233734+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_place_spec] Tier 2 sanitized failed (Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'C1', 'evidence': {'quote_ko': 'S#24. 해안가 / 소나기', 'scene_index': 24}, 'inferred': False, 'kind': 'coastline', 'name_en': 'Coastal edge beside the travel route', 'placement_en': 'The coastal edge forms the seaward side of the site and extends alongside the coastal travel route.', 'temporal_scope': 'persistent_site'}, {'code': 'R1', 'evidence': None, 'inferred': True, 'kind': 'approach', 'name_en': 'Coastal travel route beside the shoreline', 'placement_en': 'The coastal travel route follows the landward side of the coastal edge and provides continuous movement through the site.', 'temporal_scope': 'persistent_site'}] is too short), trying GPT fallback"} 00:53:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:53:56.236709+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55501 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:54:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:54:10.094557+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:54:10.095803+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:54:10.107254+00:00", "level": "ERROR", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_stormy_coast 저작 실패", "exception": "Traceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 63, in _validate_local_schema\n jsonschema.validate(instance=payload, schema=response_schema)\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/jsonschema/validators.py\", line 1332, in validate\n raise error\njsonschema.exceptions.ValidationError: [{'code': 'A1', 'evidence': None, 'inferred': True, 'kind': 'route', 'name_en': 'Coastal travel route', 'placement_en': 'Runs through the coastal site alongside the shoreline edge, providing the landward path across the location.', 'temporal_scope': 'persistent_site'}, {'code': 'B1', 'evidence': {'quote_ko': 'S#24. 해안가 / 소나기', 'scene_index': 24}, 'inferred': False, 'kind': 'shoreline', 'name_en': 'Coastal shoreline edge', 'placement_en': 'Forms the seaward side of the site beside the coastal travel route.', 'temporal_scope': 'persistent_site'}] is too short\n\nFailed validating 'minItems' in schema['properties']['items']:\n {'type': 'array',\n 'minItems': 3,\n 'items': {'type': 'object',\n 'additionalProperties': False,\n 'required': ['code',\n 'kind',\n 'name_en',\n 'placement_en',\n 'inferred',\n 'evidence',\n 'temporal_scope'],\n 'properties': {'code': {'type': 'string',\n 'pattern': '^[A-Z][0-9]$',\n 'description': '대문자1+숫자1 마커 코드, 그룹 '\n '내 비중복, 존별 접두 분리'},\n 'kind': {'type': 'string', 'minLength': 2},\n 'name_en': {'type': 'string',\n 'minLength': 3,\n 'description': 'ID-free 서술명 — '\n '이름만으로 유일 구별 가능해야 '\n '함'},\n 'placement_en': {'type': 'string',\n 'minLength': 8},\n 'inferred': {'type': 'boolean',\n 'description': 'false=씬 원문/정정 '\n '근거 확정, true=물리 '\n '성립 최소 추정'},\n 'evidence': {'anyOf': [{'type': 'object',\n 'additionalProperties': False,\n 'required': ['scene_index',\n 'quote_ko'],\n 'properties': {'scene_index': {'type': 'integer'},\n 'quote_ko': {'type': 'string',\n 'minLength': 2}}},\n {'type': 'null'}],\n 'description': 'inferred=false '\n '면 필수 인용, true 면 '\n 'null'},\n 'temporal_scope': {'type': 'string',\n 'enum': ['persistent_site'],\n 'description': '시간 불변 확인 '\n '— 마커는 장소에 '\n '영속하는 요소만 '\n 'admitted '\n '(계약 '\n '감사용)'}}}}\n\nOn instance['items']:\n [{'code': 'A1',\n 'evidence': None,\n 'inferred': True,\n 'kind': 'route',\n 'name_en': 'Coastal travel route',\n 'placement_en': 'Runs through the coastal site alongside the '\n 'shoreline edge, providing the landward path across '\n 'the location.',\n 'temporal_scope': 'persistent_site'},\n {'code': 'B1',\n 'evidence': {'quote_ko': 'S#24. 해안가 / 소나기', 'scene_index': 24},\n 'inferred': False,\n 'kind': 'shoreline',\n 'name_en': 'Coastal shoreline edge',\n 'placement_en': 'Forms the seaward side of the site beside the '\n 'coastal travel route.',\n 'temporal_scope': 'persistent_site'}]\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/outdoor_place_spec_step.py\", line 188, in _execute\n out = run_outdoor_place_spec(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/outdoor_place_spec.py\", line 297, in run_outdoor_place_spec\n result = call_structured_fn(\n ^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 690, in call_structured\n return _do_call(safe_system, sanitized_user, gpt_config, suffix_tag=\"gpt_fallback\")\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 646, in _do_call\n _validate_local_schema(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 66, in _validate_local_schema\n raise SchemaValidationError(\napp.modules.llm.safety.SchemaValidationError: Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': None, 'inferred': True, 'kind': 'route', 'name_en': 'Coastal travel route', 'placement_en': 'Runs through the coastal site alongside the shoreline edge, providing the landward path across the location.', 'temporal_scope': 'persistent_site'}, {'code': 'B1', 'evidence': {'quote_ko': 'S#24. 해안가 / 소나기', 'scene_index': 24}, 'inferred': False, 'kind': 'shoreline', 'name_en': 'Coastal shoreline edge', 'placement_en': 'Forms the seaward side of the site beside the coastal travel route.', 'temporal_scope': 'persistent_site'}] is too short"} 00:54:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:54:10.111449+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55507 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55512 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:54:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:54:48.323639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:54:48.324973+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:54:48.344326+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55516 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:55:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:55:09.830075+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:55:09.832778+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:55:09.854747+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:55:22.850530+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:55:22.852327+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:55:22.874300+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_place_spec] Tier 1 failed (Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': {'quote_ko': 'S#30. 바다 / 해질 무렵', 'scene_index': 30}, 'inferred': False, 'kind': 'water area', 'name_en': 'Open sea water area', 'placement_en': 'The water area occupies the outdoor location beneath the open sky, with no persistent internal boundary or fixed adjoining structure established by the scene.', 'temporal_scope': 'persistent_site'}] is too short), trying sanitized input"} 00:55:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:55:22.880084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55524 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:55:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:55:39.180727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:55:39.183172+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:55:39.201438+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[outdoor_place_spec] Tier 2 sanitized failed (Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'S1', 'evidence': {'quote_ko': 'S#30. 바다 / 해질 무렵', 'scene_index': 30}, 'inferred': False, 'kind': 'waterbody', 'name_en': 'open-sea water expanse', 'placement_en': 'The open-sea water expanse occupies the entire established site, with no fixed shoreline, built boundary, or persistent internal landmark identified within the scene.', 'temporal_scope': 'persistent_site'}] is too short), trying GPT fallback"} 00:55:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:55:39.204381+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55530 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:55:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:55:51.884716+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:55:51.887632+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:55:51.907724+00:00", "level": "ERROR", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_open_sea 저작 실패", "exception": "Traceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 63, in _validate_local_schema\n jsonschema.validate(instance=payload, schema=response_schema)\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/jsonschema/validators.py\", line 1332, in validate\n raise error\njsonschema.exceptions.ValidationError: [{'code': 'A1', 'evidence': {'quote_ko': 'S#30. 바다 / 해질 무렵', 'scene_index': 30}, 'inferred': False, 'kind': 'water body', 'name_en': 'Offshore open-sea expanse', 'placement_en': 'The offshore open-sea expanse occupies the entire established site, with no shoreline or fixed structure identified within the scene area.', 'temporal_scope': 'persistent_site'}] is too short\n\nFailed validating 'minItems' in schema['properties']['items']:\n {'type': 'array',\n 'minItems': 3,\n 'items': {'type': 'object',\n 'additionalProperties': False,\n 'required': ['code',\n 'kind',\n 'name_en',\n 'placement_en',\n 'inferred',\n 'evidence',\n 'temporal_scope'],\n 'properties': {'code': {'type': 'string',\n 'pattern': '^[A-Z][0-9]$',\n 'description': '대문자1+숫자1 마커 코드, 그룹 '\n '내 비중복, 존별 접두 분리'},\n 'kind': {'type': 'string', 'minLength': 2},\n 'name_en': {'type': 'string',\n 'minLength': 3,\n 'description': 'ID-free 서술명 — '\n '이름만으로 유일 구별 가능해야 '\n '함'},\n 'placement_en': {'type': 'string',\n 'minLength': 8},\n 'inferred': {'type': 'boolean',\n 'description': 'false=씬 원문/정정 '\n '근거 확정, true=물리 '\n '성립 최소 추정'},\n 'evidence': {'anyOf': [{'type': 'object',\n 'additionalProperties': False,\n 'required': ['scene_index',\n 'quote_ko'],\n 'properties': {'scene_index': {'type': 'integer'},\n 'quote_ko': {'type': 'string',\n 'minLength': 2}}},\n {'type': 'null'}],\n 'description': 'inferred=false '\n '면 필수 인용, true 면 '\n 'null'},\n 'temporal_scope': {'type': 'string',\n 'enum': ['persistent_site'],\n 'description': '시간 불변 확인 '\n '— 마커는 장소에 '\n '영속하는 요소만 '\n 'admitted '\n '(계약 '\n '감사용)'}}}}\n\nOn instance['items']:\n [{'code': 'A1',\n 'evidence': {'quote_ko': 'S#30. 바다 / 해질 무렵', 'scene_index': 30},\n 'inferred': False,\n 'kind': 'water body',\n 'name_en': 'Offshore open-sea expanse',\n 'placement_en': 'The offshore open-sea expanse occupies the entire '\n 'established site, with no shoreline or fixed '\n 'structure identified within the scene area.',\n 'temporal_scope': 'persistent_site'}]\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/outdoor_place_spec_step.py\", line 188, in _execute\n out = run_outdoor_place_spec(\n ^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/outdoor_place_spec.py\", line 297, in run_outdoor_place_spec\n result = call_structured_fn(\n ^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 690, in call_structured\n return _do_call(safe_system, sanitized_user, gpt_config, suffix_tag=\"gpt_fallback\")\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 646, in _do_call\n _validate_local_schema(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 66, in _validate_local_schema\n raise SchemaValidationError(\napp.modules.llm.safety.SchemaValidationError: Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': {'quote_ko': 'S#30. 바다 / 해질 무렵', 'scene_index': 30}, 'inferred': False, 'kind': 'water body', 'name_en': 'Offshore open-sea expanse', 'placement_en': 'The offshore open-sea expanse occupies the entire established site, with no shoreline or fixed structure identified within the scene area.', 'temporal_scope': 'persistent_site'}] is too short"} {"timestamp": "2026-07-10T15:55:51.915838+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec partial (completed=8/12, failed=4)"} {"timestamp": "2026-07-10T15:55:51.984299+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 50 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T15:55:52.083660+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 546 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T15:55:52.109123+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T15:55:52.132933+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 19 outlooks + 17 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T15:55:52.138770+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 3 orphan outlooks: ['70년대빈티지원피스', '70년대니트조끼', '나들이용블라우스']"} {"timestamp": "2026-07-10T15:55:52.153518+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 29 total short_ids found"} {"timestamp": "2026-07-10T15:55:52.160815+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode f8e669c3-f8df-47ce-8a93-40dca77cbaf5 status NOT advanced — incomplete steps: ['outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T15:55:52.162416+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode f8e669c3, step=outdoor_place_spec, repaired=0)"} INFO: 127.0.0.1:55533 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55553 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-10T15:57:01.851049+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:7872eda9-8b02-4cb3-bfd1-04ae1d43acac:f8e669c3-f8df-47ce-8a93-40dca77cbaf5:outdoor_place_spec (Step outdoor_place_spec for f8e669c3-f8df-47ce-8a93-40dca77cbaf5)"} INFO: 127.0.0.1:55553 - "POST /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps/outdoor_place_spec?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T15:57:01.856140+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=outdoor_place_spec status=running → force-like"} {"timestamp": "2026-07-10T15:57:01.857011+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec started (run_id=b4b5f4d1-a6df-41c8-a48d-261f012e96a9, model=gpt)"} 00:57:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:57:01.861473+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55562 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:57:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:57:35.777379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:57:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:57:35.778734+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:57:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:57:35.800938+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55568 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55579 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:58:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:58:03.834858+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:58:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:58:03.835928+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:58:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:58:03.847950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55585 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55593 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:58:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:58:53.607308+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:58:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:58:53.609588+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:58:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:58:53.632631+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55598 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:59:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:59:17.368459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:59:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:59:17.370231+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T15:59:17.390052+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_harbor_commercial_street 매핑 씬 없음 — skip"} {"timestamp": "2026-07-10T15:59:17.390290+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_large_market 매핑 씬 없음 — skip"} 00:59:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:59:17.393674+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55605 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55612 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 00:59:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T15:59:54.796430+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:59:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T15:59:54.799341+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:59:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T15:59:54.822634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55617 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:00:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:00:02.687180+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:00:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:00:02.689600+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:00:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:00:02.712243+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55622 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:00:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:00:24.277558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:00:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:00:24.279174+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:00:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:00:24.296463+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55627 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:00:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:00:50.882977+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:00:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:00:50.885563+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:00:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:00:50.908597+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55634 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55640 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:01:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:01:30.545313+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:01:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:01:30.547610+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:01:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:01:30.570976+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:01:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:01:41.553773+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:01:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:01:41.555830+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T16:01:41.590230+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec completed (completed=12/12, failed=0)"} {"timestamp": "2026-07-10T16:01:41.653578+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 50 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T16:01:41.834332+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-07-10T16:01:41.853209+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 546 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T16:01:41.872166+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T16:01:41.889917+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 19 outlooks + 17 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T16:01:41.894444+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 3 orphan outlooks: ['70년대빈티지원피스', '70년대니트조끼', '나들이용블라우스']"} {"timestamp": "2026-07-10T16:01:41.905558+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 29 total short_ids found"} {"timestamp": "2026-07-10T16:01:41.909266+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode f8e669c3-f8df-47ce-8a93-40dca77cbaf5 status NOT advanced — incomplete steps: ['outdoor_shot_grounding']"} {"timestamp": "2026-07-10T16:01:41.910478+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode f8e669c3, step=outdoor_place_spec, repaired=0)"} INFO: 127.0.0.1:55652 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55660 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:02:17.978320+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:7872eda9-8b02-4cb3-bfd1-04ae1d43acac:f8e669c3-f8df-47ce-8a93-40dca77cbaf5:outdoor_place_canon (Step outdoor_place_canon for f8e669c3-f8df-47ce-8a93-40dca77cbaf5)"} INFO: 127.0.0.1:55660 - "POST /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps/outdoor_place_canon?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:02:17.982697+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Invalidated 1 downstream steps from outdoor_place_canon (delete_cp=True): ['outdoor_shot_grounding']"} {"timestamp": "2026-07-10T16:02:17.984357+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon started (run_id=effa725c-763d-4632-a3c0-0111b62977de, model=gpt)"} OPIK: Started logging traces to the "theroad-scene-lab" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=019f4cc4-1ac4-705b-84a5-2c5b2a341cf6&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. INFO: 127.0.0.1:55674 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:02:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:02:48.620369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:03:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:03:03.697347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:03:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:03:03.719347+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:03:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:03:03.722958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55720 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:03:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:03:28.490534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:03:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:03:28.501970+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:03:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:03:28.516639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:03:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:03:34.774678+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:03:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:03:34.781846+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:03:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:03:34.790921+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55731 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:03:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:03:52.167335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:03:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:03:52.180048+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:55741 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55754 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55763 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55773 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55783 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55801 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:06:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:06:59.498015+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55810 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:07:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:07:18.391843+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:07:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:07:18.404679+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:07:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:07:18.417223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:07:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:07:37.523277+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:07:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:07:37.533968+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:07:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:07:37.558945+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:07:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:07:43.464020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:07:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:07:43.475395+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:07:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:07:43.483981+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55826 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:07:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:07:56.227927+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:07:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:07:56.239397+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:55843 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55853 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55863 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55875 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55884 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55895 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:11:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:11:15.090815+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55916 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:11:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:11:27.052722+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:11:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:11:27.063254+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:11:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:11:27.082890+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:11:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:11:47.358250+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:11:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:11:47.369024+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:11:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:11:47.393444+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:55930 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:11:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:11:56.764032+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:11:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:11:56.773007+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:11:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:11:56.780432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:12:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:12:10.196395+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:12:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:12:10.207300+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:55941 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55956 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55972 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55982 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55993 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56003 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56018 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:15:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:15:24.189896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:15:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:15:38.144171+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:15:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:15:38.159083+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:15:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:15:38.182467+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56028 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:15:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:15:49.834323+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:15:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:15:49.848045+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:15:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:15:49.876269+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:15:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:15:53.310147+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:15:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:15:53.319086+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:15:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:15:53.329579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:16:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:16:01.695831+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:16:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:16:01.711198+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:56038 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56052 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56063 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56074 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56091 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56103 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:19:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:19:09.454187+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56115 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:19:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:19:23.165917+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:19:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:19:23.177202+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:19:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:19:23.195481+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:19:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:19:41.019430+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:19:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:19:41.029670+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:19:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:19:41.053060+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:19:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:19:43.276493+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:19:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:19:43.278176+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:19:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:19:43.294991+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56133 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:19:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:19:51.884367+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:19:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:19:51.894363+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:56144 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56153 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56164 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56176 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56190 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:22:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:22:29.581321+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:22:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:22:41.774597+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:22:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:22:41.785289+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:22:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:22:41.804685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56205 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:23:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:23:12.172290+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:23:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:23:12.183844+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:23:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:23:12.207289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56224 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:23:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:23:21.564392+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:23:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:23:21.574485+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:23:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:23:21.582929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:23:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:23:36.119441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:23:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:23:36.130914+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:56238 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56248 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56257 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56266 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56279 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56294 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56311 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56325 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:27:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:27:21.317957+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:27:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:27:43.692197+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:27:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:27:43.702767+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:27:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:27:43.723440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56336 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56352 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:28:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:28:31.695465+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:28:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:28:31.707255+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:28:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:28:31.732443+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56363 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:29:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:29:07.385707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:29:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:29:07.398022+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:29:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:29:07.407845+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56375 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:29:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:29:34.862756+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:29:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:29:34.873169+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:56389 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56399 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56407 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56417 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56432 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56447 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56461 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:32:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:32:50.690433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:33:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:33:07.536978+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:33:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:33:07.546436+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:33:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:33:07.566587+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56484 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:33:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:33:49.135667+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:33:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:33:49.137660+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:33:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:33:49.173263+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56495 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:34:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:34:13.951476+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:34:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:34:13.964341+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:34:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:34:13.972225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56508 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:34:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:34:33.313166+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:34:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:34:33.322497+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:56522 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56534 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56542 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56552 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56565 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56580 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:37:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:37:23.822775+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:37:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:37:37.304209+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:37:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:37:37.316298+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:37:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:37:37.336642+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56592 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:38:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:38:03.920987+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:38:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:38:03.931839+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:38:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:38:03.955259+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:38:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:38:06.741655+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:38:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:38:06.754005+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:38:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:38:06.762940+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:38:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:38:17.929330+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:38:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:38:17.939787+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:56614 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56623 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56633 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56646 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56656 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56675 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:41:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:41:03.806556+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:41:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:41:16.702015+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:41:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:41:16.714622+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:41:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:41:16.735843+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56689 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:41:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:41:35.483691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:41:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:41:35.495799+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 01:41:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:41:35.520690+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56701 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:41:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:41:52.841965+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:41:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:41:52.852078+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:41:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T16:41:52.858827+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:42:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:42:06.551075+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:42:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T16:42:06.562118+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:56716 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56724 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56741 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56752 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56763 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:44:50.574191+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon completed (completed=10/10, failed=0)"} {"timestamp": "2026-07-10T16:44:50.645740+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 50 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T16:44:50.761488+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 546 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T16:44:50.787152+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T16:44:50.810019+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 19 outlooks + 17 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T16:44:50.815924+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 3 orphan outlooks: ['70년대빈티지원피스', '70년대니트조끼', '나들이용블라우스']"} {"timestamp": "2026-07-10T16:44:50.827551+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 29 total short_ids found"} {"timestamp": "2026-07-10T16:44:50.831806+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode f8e669c3-f8df-47ce-8a93-40dca77cbaf5 status NOT advanced — incomplete steps: ['outdoor_shot_grounding']"} {"timestamp": "2026-07-10T16:44:50.833273+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode f8e669c3, step=outdoor_place_canon, repaired=0)"} INFO: 127.0.0.1:56773 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:44:51.709242+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:7872eda9-8b02-4cb3-bfd1-04ae1d43acac:f8e669c3-f8df-47ce-8a93-40dca77cbaf5:outdoor_shot_grounding (Step outdoor_shot_grounding for f8e669c3-f8df-47ce-8a93-40dca77cbaf5)"} INFO: 127.0.0.1:56773 - "POST /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps/outdoor_shot_grounding?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:44:51.719560+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_shot_grounding started (run_id=6e9e8134-b08d-42bc-a3a9-3bbbbf6fc484, model=gpt)"} 01:44:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:44:51.738102+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:45:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:45:03.725789+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:45:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:45:03.734948+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:45:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:45:03.747233+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:45:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:45:14.962501+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:45:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:45:14.972442+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:45:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:45:14.985997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56787 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:45:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:45:35.418190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:45:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:45:35.430277+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:45:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:45:35.445335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:45:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:45:42.552458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:45:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:45:42.565308+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:45:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:45:42.580244+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:45:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:45:48.797799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:45:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:45:48.810366+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:45:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:45:48.824553+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56798 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:46:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:46:04.497195+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:46:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:46:04.511024+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:46:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:46:04.523511+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:46:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:46:15.988690+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:46:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:46:16.002781+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:46:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:46:16.016776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56810 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56823 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:46:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:46:53.625020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:46:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:46:53.637489+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:46:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:46:53.650581+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:46:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:46:59.799259+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:46:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:46:59.812422+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:46:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:46:59.829122+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:47:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:47:08.109740+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:47:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:47:08.121622+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:47:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:47:08.135843+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56837 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:47:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:47:25.025799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:47:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:47:25.037722+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:47:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:47:25.049632+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:47:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:47:39.288446+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:47:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:47:39.303529+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:47:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:47:39.316862+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56848 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:47:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:47:52.791935+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:47:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:47:52.800578+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:47:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:47:52.815410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:48:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:48:01.388005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:48:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:48:01.399611+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:48:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:48:01.415196+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:48:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:48:18.572991+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:48:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:48:18.585032+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:48:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:48:18.598460+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56868 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:48:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:48:35.145252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:48:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:48:35.155101+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:48:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:48:35.166310+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:48:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:48:47.563727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:48:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:48:47.574579+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:48:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:48:47.588669+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56878 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:49:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:49:08.463365+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:49:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:49:08.475166+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:49:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:49:08.490026+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:49:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:49:20.208316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:49:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:49:20.218913+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:49:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:49:20.234541+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56888 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:49:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:49:34.953799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:49:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:49:34.964551+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:49:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:49:34.980172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:49:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:49:49.347275+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:49:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:49:49.357896+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:49:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:49:49.374141+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56904 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:50:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:50:03.030969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:50:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:50:03.040345+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:50:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:50:03.055567+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:50:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:50:19.017149+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:50:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:50:19.029910+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:50:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:50:19.044712+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56918 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:50:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:50:39.294094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:50:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:50:39.306479+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:50:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:50:39.321541+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56926 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:50:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:50:53.020634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:50:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:50:53.032243+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:50:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:50:53.046417+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:51:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:51:03.960240+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:51:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:51:03.971143+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:51:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:51:03.985786+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:51:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:51:19.123936+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:51:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:51:19.131355+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:51:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:51:19.143502+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56941 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:51:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:51:39.157569+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:51:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:51:39.168726+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:51:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:51:39.184536+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56955 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:51:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:51:53.342432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:51:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:51:53.351023+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:51:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:51:53.365918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:52:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:52:04.431120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:52:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:52:04.443617+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:52:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:52:04.459085+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:52:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:52:11.728485+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:52:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:52:11.739700+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 01:52:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:52:11.753344+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:56965 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK 01:52:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:52:25.352305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:52:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:52:25.364003+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T16:52:25.387628+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_shot_grounding completed (completed=32/32, failed=0)"} {"timestamp": "2026-07-10T16:52:25.459877+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 50 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T16:52:25.564512+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 546 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T16:52:25.591206+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T16:52:25.614816+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 19 outlooks + 17 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T16:52:25.620691+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 3 orphan outlooks: ['70년대빈티지원피스', '70년대니트조끼', '나들이용블라우스']"} {"timestamp": "2026-07-10T16:52:25.633429+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 29 total short_ids found"} {"timestamp": "2026-07-10T16:52:25.639698+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode f8e669c3, step=outdoor_shot_grounding, repaired=0)"} INFO: 127.0.0.1:56975 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57030 - "POST /api/v1/auth/login HTTP/1.1" 200 OK 01:55:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:55:04.680557+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 01:55:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:55:08.599143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:55:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T16:55:08.602037+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57030 - "POST /api/v1/projects/ HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:55:08.644628+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "creator_corrections updated: project=8207aadc-7975-48f5-af17-ccc145a6660d entries=1 (by admin)"} INFO: 127.0.0.1:57030 - "PUT /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/creator-corrections HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:55:08.798179+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "Planning doc uploaded for project 8207aadc: 20566 chars, 16 pages"} INFO: 127.0.0.1:57030 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/planning-doc HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:55:08.807489+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=8207aadc): PDF multimodal (1504329 bytes)"} 01:55:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T16:55:08.809185+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:57030 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/ HTTP/1.1" 200 OK INFO: 127.0.0.1:57030 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/creator-corrections HTTP/1.1" 200 OK INFO: 127.0.0.1:57041 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:57041 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57044 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:57044 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:55:24.771332+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:planning_doc_analysis (Step planning_doc_analysis for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57044 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/planning_doc_analysis?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:55:24.776364+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis started (run_id=d40186a9-beec-40f2-b81e-f3ef89e11461, model=gemini-lite)"} {"timestamp": "2026-07-10T16:55:24.780263+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: PDF multimodal (1504329 bytes)"} 01:55:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T16:55:24.781075+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 01:55:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:55:38.274393+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:55:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T16:55:38.285922+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T16:55:38.300178+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=8207aadc) done: 9 characters, 5 relationships, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'], job_id=4bdc93df24af405ebf21a16e19f4d47d"} INFO: 127.0.0.1:57055 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 01:56:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:56:07.761942+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:56:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T16:56:07.775130+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T16:56:07.786867+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: 9 characters, 4 relationships, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'], mode=pdf"} {"timestamp": "2026-07-10T16:56:07.799179+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T16:56:07.799369+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T16:56:07.799851+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-07-10T16:56:07.809986+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-07-10T16:56:07.820242+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['text_cleanup', 'scene_segmentation', 'episode_summary', 'visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T16:56:07.824477+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=planning_doc_analysis, repaired=0)"} INFO: 127.0.0.1:57067 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57067 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:56:24.858428+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:text_cleanup (Step text_cleanup for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57067 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/text_cleanup?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:56:24.863990+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=142d191b-5777-4c68-9935-9820731d9f16, model=gemini-lite)"} {"timestamp": "2026-07-10T16:56:24.870350+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes, 18 pages) → model=gemini-lite"} 01:56:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T16:56:24.873887+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 01:56:24 - LiteLLM:INFO: vertex_and_google_ai_studio_gemini.py:1091 - Warning: Setting temperature < 1.0 for Gemini 3 models (gemini-3.5-flash) can cause infinite loops, degraded reasoning performance, and failure on complex tasks. Strongly recommended to use temperature = 1.0 (default). {"timestamp": "2026-07-10T16:56:24.876334+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Warning: Setting temperature < 1.0 for Gemini 3 models (gemini-3.5-flash) can cause infinite loops, degraded reasoning performance, and failure on complex tasks. Strongly recommended to use temperature = 1.0 (default)."} INFO: 127.0.0.1:57082 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57096 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57135 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 01:58:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:58:08.078580+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:58:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T16:58:08.086924+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T16:58:08.090064+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: extracted 9300 chars from 금월도 1부_260226(최종수정본).pdf"} {"timestamp": "2026-07-10T16:58:08.104552+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T16:58:08.105004+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T16:58:08.105680+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-07-10T16:58:08.117676+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-07-10T16:58:08.130573+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_segmentation', 'episode_summary', 'visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T16:58:08.135961+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=text_cleanup, repaired=0)"} INFO: 127.0.0.1:57161 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57161 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:58:25.078361+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:scene_segmentation (Step scene_segmentation for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57161 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/scene_segmentation?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:58:25.092591+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation started (run_id=15b1722a-5353-4adf-b12c-48f84343f4bd, model=gemini-flash)"} 01:58:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T16:58:25.097140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 01:58:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:58:39.541794+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:58:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T16:58:39.543421+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T16:58:39.549953+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "Segmentation attempt 1: pattern=S#[0-9]+\\.\\s*[^/\\n]+?/\\s*(?:N|D|실내|실외|낮|밤|소나기|해\\s*질\\s*무렵|해질\\, matched=30, estimated=30"} {"timestamp": "2026-07-10T16:58:39.564823+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T16:58:39.565141+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T16:58:39.565844+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-07-10T16:58:39.573536+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-07-10T16:58:39.583853+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['episode_summary', 'visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T16:58:39.587688+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=scene_segmentation, repaired=0)"} INFO: 127.0.0.1:57178 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57178 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:58:55.158332+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:episode_summary (Step episode_summary for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57178 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/episode_summary?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:58:55.167881+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary started (run_id=d3dcf192-cc10-4736-bd56-3976ee8285c4, model=gpt-mini)"} 01:58:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T16:58:55.171815+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 01:59:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T16:59:06.997654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:59:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T16:59:06.999736+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T16:59:07.029929+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T16:59:07.030404+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T16:59:07.031406+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-07-10T16:59:07.044616+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-07-10T16:59:07.060402+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T16:59:07.067135+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=episode_summary, repaired=0)"} INFO: 127.0.0.1:57194 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:57198 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57198 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:59:25.244913+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:visual_world_rules (Step visual_world_rules for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57198 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/visual_world_rules?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T16:59:25.255425+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules started (run_id=2c223af7-1a3d-4359-89e8-550f7b33f96b, model=gpt)"} 01:59:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T16:59:25.270440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:57213 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:00:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:00:21.348648+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:00:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:00:21.351146+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:00:21.362360+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "VisualWorldRulesStep: 8 rules, era=2026년을 현재 시점으로 하는 현대이며, 1970~1980년대의 기록 이미지와 고려·조선시대에 기원을 둔 전승이 배경 세계관에 병존함, region=대한민국 서해안 인근의 현대 항구 도시권과 지도에 표시되지 않은 폐쇄 섬 공동체, planning_doc=True"} {"timestamp": "2026-07-10T17:00:21.375737+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T17:00:21.376112+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:00:21.376889+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-07-10T17:00:21.387626+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-07-10T17:00:21.399550+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:00:21.403607+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=visual_world_rules, repaired=0)"} INFO: 127.0.0.1:57224 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57224 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:00:25.367169+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:scene_save (Step scene_save for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57224 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/scene_save?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:00:25.378373+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save started (run_id=1f96dc9e-ce19-4b64-b767-002c3b423e6d, model=-)"} {"timestamp": "2026-07-10T17:00:25.386161+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:00:25.386341+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:00:25.386788+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-07-10T17:00:25.394251+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-07-10T17:00:25.401115+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:00:25.403636+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=scene_save, repaired=0)"} INFO: 127.0.0.1:57232 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57232 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:00:55.448526+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_character_list (Step entity_character_list for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57232 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_character_list?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:00:55.459326+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list started (run_id=a00b5eff-3035-4c20-836f-36c3d617fdef, model=gemini-pro)"} 02:00:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:00:55.466347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57243 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:01:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:01:54.416924+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:01:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:01:54.419490+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-07-10T17:01:54.428008+00:00", "level": "INFO", "logger": "app.core.steps.character_list_step", "message": "entity_character_list: 6 characters extracted"} {"timestamp": "2026-07-10T17:01:54.441720+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list completed (completed=6/6, failed=0)"} {"timestamp": "2026-07-10T17:01:54.442149+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:01:54.442917+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-07-10T17:01:54.453445+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-07-10T17:01:54.465679+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:01:54.469902+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_character_list, repaired=0)"} INFO: 127.0.0.1:57258 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57258 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:01:55.575586+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:scene_summary (Step scene_summary for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57258 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/scene_summary?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:01:55.585771+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary started (run_id=989289a8-e24a-4baf-b4fd-0e6c311e9f60, model=gpt-mini)"} 02:01:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:01:55.595155+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:01:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:01:55.597891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:01:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:01:55.600200+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:01:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:01:55.602715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:01:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:01:55.603698+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:01.440411+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:01.443171+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:01.449019+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:01.453236+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:01.454451+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:01.458025+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:01.467726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:01.469634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:01.471815+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:02.282098+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:02.284603+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:02.294979+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:02.789450+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:02.791248+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:02.798192+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:07.345108+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:07.347805+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:07.357962+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:09.041539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:09.043903+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:09.053382+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:10.059693+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:10.061907+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:10.070414+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:10.263195+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:10.265623+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:10.273936+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:10.466109+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:10.468640+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:10.477902+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:14.480569+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:14.482565+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:14.489982+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:15.483123+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:15.485710+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:15.495369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:15.679975+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:15.682170+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:15.691473+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:16.386969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:16.388757+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:16.397222+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:18.802378+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:18.804822+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:18.813740+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:22.709280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:22.711843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:22.721314+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:23.811726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:23.813299+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:23.820513+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:24.916615+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:24.918702+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:24.929353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:57288 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:02:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:25.717797+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:25.719903+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:25.727714+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:26.328190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:26.329962+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:26.337023+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:28.037516+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:28.040070+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:28.048870+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:29.740424+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:29.742840+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:29.755838+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:34.240213+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:34.242732+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:34.251609+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:34.335857+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:34.339694+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:34.348152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:36.044302+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:36.046806+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:02:36.057652+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:02:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:36.524851+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:36.527363+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:38.700110+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:38.702657+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:39.160899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:39.163368+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:39.414405+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:39.416226+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:02:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:02:40.934234+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:02:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:02:40.936308+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:02:40.942223+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "SceneSummaryStep: 30/30 scenes summarized (0 failed)"} {"timestamp": "2026-07-10T17:02:40.955995+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:02:40.956380+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:02:40.957591+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-07-10T17:02:40.967209+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-07-10T17:02:40.978638+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:02:40.983454+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=scene_summary, repaired=0)"} INFO: 127.0.0.1:57302 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57302 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:02:55.690281+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:beat_extract (Step beat_extract for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57302 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/beat_extract?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:02:55.701531+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract started (run_id=90a73825-973b-40c9-bc11-f9e88f9f46a8, model=gemini-pro)"} {"timestamp": "2026-07-10T17:02:55.703397+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 6 characters injected"} {"timestamp": "2026-07-10T17:02:55.709044+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 30 scenes → 4 bundles"} 02:02:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:02:55.716499+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:02:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini 02:02:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:02:55.719802+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:02:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:02:55.720862+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} {"timestamp": "2026-07-10T17:02:55.722627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:03:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:03:25.565505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:03:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:03:25.568140+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-07-10T17:03:25.582031+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 4 (scenes 28~30): 3 scenes, 9 beats"} INFO: 127.0.0.1:57325 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:03:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:03:36.427874+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:03:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:03:36.430326+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-07-10T17:03:36.442854+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 2 (scenes 12~18): 7 scenes, 15 beats"} 02:03:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:03:44.898377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:03:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:03:44.901249+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-07-10T17:03:44.916714+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~11): 11 scenes, 13 beats"} 02:03:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:03:48.430741+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:03:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:03:48.433265+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-07-10T17:03:48.448317+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 3 (scenes 19~27): 9 scenes, 18 beats"} {"timestamp": "2026-07-10T17:03:48.448830+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 30 scenes, 55 beats"} {"timestamp": "2026-07-10T17:03:48.461688+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:03:48.462040+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:03:48.463227+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-07-10T17:03:48.474707+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-07-10T17:03:48.487385+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:03:48.492616+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=beat_extract, repaired=0)"} INFO: 127.0.0.1:57332 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57332 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:03:55.818328+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_extract (Step shot_extract for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57332 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_extract?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:03:55.832075+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract started (run_id=6ea83e0c-82da-4f70-b755-63d5f8f9f10a, model=gemini-pro)"} {"timestamp": "2026-07-10T17:03:55.834308+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: t2i_context injected (442 chars)"} {"timestamp": "2026-07-10T17:03:55.834583+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 6 characters injected as enum"} {"timestamp": "2026-07-10T17:03:55.842645+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=16.202607080045). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} {"timestamp": "2026-07-10T17:03:55.843412+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 30 scenes → 4 bundles (sequential)"} 02:03:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:03:55.847398+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57343 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57356 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57365 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:05:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:05:38.680934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:05:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:05:38.683434+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-07-10T17:05:38.699470+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 1 (scenes 1~11): 11 scenes, 59 shots"} 02:05:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:05:38.702809+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57377 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57389 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:06:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:06:41.820145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:06:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:06:41.821936+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-07-10T17:06:41.832921+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 2 (scenes 12~18): 7 scenes, 48 shots"} 02:06:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:06:41.836158+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57403 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57413 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57423 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57440 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:08:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:08:34.385339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:08:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:08:34.388049+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-07-10T17:08:34.403803+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 3 (scenes 19~27): 9 scenes, 62 shots"} 02:08:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:08:34.407298+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57451 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:09:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:09:13.444364+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:09:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:09:13.447179+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-07-10T17:09:13.461850+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 4 (scenes 28~30): 3 scenes, 24 shots"} {"timestamp": "2026-07-10T17:09:13.462444+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 30 scenes, 193 shots"} {"timestamp": "2026-07-10T17:09:13.481179+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:09:13.481915+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:09:13.483270+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-07-10T17:09:13.495048+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-07-10T17:09:13.507628+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:09:13.511713+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_extract, repaired=0)"} INFO: 127.0.0.1:57464 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57464 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:09:26.361230+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_validator (Step shot_validator for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57464 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_validator?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:09:26.373234+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator started (run_id=3ca11bb4-b0ae-4e73-ab40-f5eed7bdea70, model=gemini-pro)"} {"timestamp": "2026-07-10T17:09:26.384895+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: entity character pool unavailable (entity_merge + EntityCanon both empty) — RC-F entity mapping inactive this run; re-run after entity pipeline produces characters."} 02:09:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:26.394882+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:26.396687+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:26.398173+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:26.401172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:09:36.172256+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:09:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:09:36.174380+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:09:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:36.187168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:09:38.266752+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:09:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:09:38.269274+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:09:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:38.282785+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:09:41.969069+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:09:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:09:41.971606+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:09:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:41.986672+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:09:44.398591+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:09:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:09:44.400939+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:09:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:44.415123+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:09:52.330336+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:09:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:09:52.332677+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:09:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:52.347189+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57482 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:09:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:09:57.369276+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:09:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:09:57.371479+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:09:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:57.386472+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:09:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:09:59.678217+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:09:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:09:59.680730+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:09:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:09:59.694005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:01.692793+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:01.695332+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:01.709778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:02.195907+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:02.198424+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:02.214860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:20.469980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:20.472585+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:20.487413+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:22.681451+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:22.683923+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:22.698772+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57497 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:10:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:31.123295+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:31.125854+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:31.142012+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:31.523920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:31.526424+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:31.541401+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:39.551304+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:39.554697+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:39.567588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:40.447561+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:40.450050+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:40.466209+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:43.550912+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:43.553279+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:43.567081+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:10:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:45.667434+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:45.669980+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:45.684393+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57509 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:10:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:10:57.629586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:10:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:10:57.632144+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:10:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:10:57.646892+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:02.250409+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:02.252585+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:02.266708+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:06.341134+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:06.342912+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:06.354547+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:11.334880+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:11.336402+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:11.353891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:12.000105+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:12.003508+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-07-10T17:11:12.005421+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[shot_validator] Tier 1 failed (LLM returned empty response for step=shot_validator, model=gemini-pro), trying sanitized input"} 02:11:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:12.009459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:12.669420+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:12.671975+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-07-10T17:11:12.675463+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[shot_validator] Tier 2 sanitized failed (LLM returned empty response for step=shot_validator, model=gemini-pro), trying GPT fallback"} 02:11:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:11:12.679362+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:11:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:16.792758+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:16.794983+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:16.812587+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:25.631910+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:25.634162+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:25.649894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:26.004941+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:26.007313+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:26.017640+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57526 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:11:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:27.336593+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:11:27.338295+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:11:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:27.352830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:35.539550+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:35.541683+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:35.555690+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:11:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:46.031138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:46.033649+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:52.501197+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:52.503147+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:52.690273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:52.692332+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:11:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:11:55.940180+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:11:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:11:55.942711+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-07-10T17:11:55.956377+00:00", "level": "INFO", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: 30 scenes, 193 shots total, 45 revised, 0 failed"} {"timestamp": "2026-07-10T17:11:55.974756+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:11:55.975154+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:11:55.977794+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-07-10T17:11:55.988252+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-07-10T17:11:56.000185+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:11:56.004366+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_validator, repaired=0)"} INFO: 127.0.0.1:57541 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57541 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:11:56.615845+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_all_character (Step entity_all_character for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57541 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_all_character?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:11:56.625993+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character started (run_id=9fbb9e1d-0f16-4584-a37a-ad10122d2769, model=gemini-pro)"} 02:11:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:11:56.632790+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57553 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:12:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:12:46.118507+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:12:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:12:46.121090+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-07-10T17:12:46.129734+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_character (shot-based, 1 call): 13 entities from 193 shots"} {"timestamp": "2026-07-10T17:12:46.143504+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character completed (completed=13/13, failed=0)"} {"timestamp": "2026-07-10T17:12:46.143874+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:12:46.146704+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-07-10T17:12:46.157708+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-07-10T17:12:46.169235+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:12:46.173851+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_all_character, repaired=0)"} INFO: 127.0.0.1:57562 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57562 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:12:56.747039+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_extract_character (Step entity_extract_character for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57562 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_extract_character?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:12:56.755923+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character started (run_id=43b5aa89-303e-4351-9591-f346c546cc05, model=gpt)"} 02:12:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:12:56.762770+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:57579 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:13:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:13:38.778198+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:13:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:13:38.780791+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:13:38.805808+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character completed (completed=13/13, failed=0)"} {"timestamp": "2026-07-10T17:13:38.806244+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:13:38.811668+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-07-10T17:13:38.823888+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-07-10T17:13:38.839357+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:13:38.844019+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_extract_character, repaired=0)"} INFO: 127.0.0.1:57590 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57590 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:13:56.855262+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_all_location (Step entity_all_location for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57590 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_all_location?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:13:56.865857+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location started (run_id=7b8d71e7-219d-4a48-8804-8c624b1a917a, model=gpt)"} 02:13:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:13:56.871280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:57603 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57611 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:15:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:15:02.961939+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:15:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:15:02.964126+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:15:02.973580+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_location (shot-based, 1 call): 22 entities from 193 shots"} {"timestamp": "2026-07-10T17:15:02.984730+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location completed (completed=22/22, failed=0)"} {"timestamp": "2026-07-10T17:15:02.985035+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:15:02.987622+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-07-10T17:15:02.996673+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-07-10T17:15:03.007654+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:15:03.011103+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_all_location, repaired=0)"} INFO: 127.0.0.1:57623 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57623 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:15:27.033359+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_extract_location (Step entity_extract_location for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57623 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_extract_location?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:15:27.043034+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location started (run_id=47783835-56d3-4fc3-81ea-769f80c3017a, model=gemini-pro)"} 02:15:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:15:27.048593+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57632 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:16:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:16:06.360190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:16:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:16:06.361762+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-07-10T17:16:06.383639+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location completed (completed=22/22, failed=0)"} {"timestamp": "2026-07-10T17:16:06.384026+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:16:06.386552+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-07-10T17:16:06.395677+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-07-10T17:16:06.406172+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:16:06.409822+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_extract_location, repaired=0)"} INFO: 127.0.0.1:57643 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57643 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:16:27.158475+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_all_prop (Step entity_all_prop for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57643 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_all_prop?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:16:27.169807+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop started (run_id=f6fda4c3-2aa5-474f-932e-02f94950e681, model=gpt)"} 02:16:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:16:27.176425+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:57660 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:17:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:17:16.968433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:17:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:17:16.971106+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:17:16.979948+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_prop (shot-based, 1 call): 12 entities from 193 shots"} {"timestamp": "2026-07-10T17:17:16.994511+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop completed (completed=12/12, failed=0)"} {"timestamp": "2026-07-10T17:17:16.994956+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:17:16.998389+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-07-10T17:17:17.012328+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-07-10T17:17:17.023547+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:17:17.027607+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_all_prop, repaired=0)"} INFO: 127.0.0.1:57671 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57671 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:17:27.277404+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_extract_prop (Step entity_extract_prop for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57671 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_extract_prop?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:17:27.287069+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop started (run_id=7a6368f1-8aec-4d8b-9c75-4e4e87f819ed, model=gemini-pro)"} 02:17:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:17:27.292282+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57681 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:17:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:17:59.450862+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:17:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:17:59.453458+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-07-10T17:17:59.482798+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop completed (completed=12/12, failed=0)"} {"timestamp": "2026-07-10T17:17:59.483234+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:17:59.485722+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-07-10T17:17:59.496145+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-07-10T17:17:59.508225+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:17:59.511913+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_extract_prop, repaired=0)"} INFO: 127.0.0.1:57700 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57700 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:18:27.410498+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_merge (Step entity_merge for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57700 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_merge?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:18:27.421824+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge started (run_id=a554266d-7810-423e-86e9-e1dc9ab0e3c8, model=gpt)"} 02:18:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:18:27.425682+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:18:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:18:36.488266+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:18:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:18:36.490416+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:18:36.506036+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge completed (completed=47/47, failed=0)"} {"timestamp": "2026-07-10T17:18:36.506310+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:18:36.509043+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-07-10T17:18:36.517041+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-07-10T17:18:36.527735+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_relation', 'entity_filter', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:18:36.530592+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_merge, repaired=0)"} INFO: 127.0.0.1:57709 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57709 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:18:57.486127+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_relation (Step entity_relation for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57709 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_relation?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:18:57.497134+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation started (run_id=ce405dea-7118-4d39-84aa-d6bc048639d6, model=gpt)"} 02:18:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:18:57.505627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:57717 - "GET /api/v1/auth/me HTTP/1.1" 200 OK INFO: 127.0.0.1:57719 - "GET /api/v1/auth/me HTTP/1.1" 200 OK INFO: 127.0.0.1:57723 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/ HTTP/1.1" 200 OK INFO: 127.0.0.1:57725 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/character-outlooks HTTP/1.1" 200 OK INFO: 127.0.0.1:57728 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/ HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:19:17.804280+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: reference — 16 completed, 0 failed"} {"timestamp": "2026-07-10T17:19:17.805315+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: scene — 71 completed, 0 failed"} INFO: 127.0.0.1:57732 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/character-outlooks HTTP/1.1" 200 OK INFO: 127.0.0.1:57730 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/generation-status HTTP/1.1" 200 OK INFO: 127.0.0.1:57721 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/entities HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:19:17.837675+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: reference — 16 completed, 0 failed"} {"timestamp": "2026-07-10T17:19:17.837923+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: scene — 71 completed, 0 failed"} INFO: 127.0.0.1:57734 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/episodes/f8e669c3-f8df-47ce-8a93-40dca77cbaf5/generation-status HTTP/1.1" 200 OK INFO: 127.0.0.1:57736 - "GET /api/v1/projects/7872eda9-8b02-4cb3-bfd1-04ae1d43acac/entities HTTP/1.1" 200 OK 02:19:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:19:18.758962+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:19:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:19:18.761563+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:19:18.772700+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_relation", "message": "Entity relations: 1 candidates → 4 confirmed (4 visual_similar)"} {"timestamp": "2026-07-10T17:19:18.784803+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T17:19:18.785161+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:19:18.791289+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C05→C11"} {"timestamp": "2026-07-10T17:19:18.791489+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L04→L05"} {"timestamp": "2026-07-10T17:19:18.791578+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L04→L06"} {"timestamp": "2026-07-10T17:19:18.791644+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L07→L08"} {"timestamp": "2026-07-10T17:19:18.796827+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-07-10T17:19:18.804601+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-07-10T17:19:18.817668+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_filter', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:19:18.823268+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_relation, repaired=0)"} INFO: 127.0.0.1:57743 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57743 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:19:27.570254+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_filter (Step entity_filter for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57743 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_filter?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:19:27.580403+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter started (run_id=243aabeb-3412-40c9-b904-e957d8b7db06, model=gpt-mini)"} 02:19:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:19:27.587977+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:19:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:19:28.042193+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:19:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:19:28.044585+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:19:28.047304+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[entity_filter] Tier 1 failed (LLM returned empty response for step=entity_filter, model=gpt-mini), trying sanitized input"} 02:19:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:19:28.051170+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:19:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:19:28.446047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:19:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:19:28.448554+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:19:28.451856+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[entity_filter] Tier 2 sanitized failed (LLM returned empty response for step=entity_filter, model=gpt-mini), trying GPT fallback"} 02:19:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:19:28.456262+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:19:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:19:34.286932+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:19:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:19:34.289471+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:19:34.298282+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_filter", "message": "Filtered 8 low-freq entities → removed 8"} {"timestamp": "2026-07-10T17:19:34.313239+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T17:19:34.313628+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:19:34.320458+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C05→C11"} {"timestamp": "2026-07-10T17:19:34.320688+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L04→L05"} {"timestamp": "2026-07-10T17:19:34.320776+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L04→L06"} {"timestamp": "2026-07-10T17:19:34.320837+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L07→L08"} {"timestamp": "2026-07-10T17:19:34.326076+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-07-10T17:19:34.335470+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-07-10T17:19:34.348242+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:19:34.353289+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_filter, repaired=0)"} INFO: 127.0.0.1:57754 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57754 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:19:57.662217+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_detail (Step entity_detail for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57754 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_detail?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:19:57.672569+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail started (run_id=541f876a-13d3-4f46-b3be-b3ac7c82c6bd, model=gpt)"} 02:19:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:19:57.688504+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:57766 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57775 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57786 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57800 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:22:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:01.241280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:22:01.243875+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:22:01.276583+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail completed (completed=39/39, failed=0)"} {"timestamp": "2026-07-10T17:22:01.276928+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T17:22:01.282973+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C05→C11"} {"timestamp": "2026-07-10T17:22:01.283194+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L04→L05"} {"timestamp": "2026-07-10T17:22:01.283280+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L04→L06"} {"timestamp": "2026-07-10T17:22:01.283347+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: L07→L08"} {"timestamp": "2026-07-10T17:22:01.288371+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-07-10T17:22:01.297836+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-07-10T17:22:01.310647+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:22:01.314177+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_detail, repaired=0)"} INFO: 127.0.0.1:57811 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57811 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:22:27.934239+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:entity_t2i (Step entity_t2i for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57811 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/entity_t2i?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:22:27.944283+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i started (run_id=9bb2ec56-93a8-4eb8-9e73-e2647e54186e, model=gemini-pro)"} 02:22:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:27.950119+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:28.955637+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:29.966407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:30.970613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:31.972299+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:32.979368+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:33.982501+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:34.989319+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:35.999946+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:37.005036+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:39.145098+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:39.147623+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:39.167159+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:41.549698+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:41.551399+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:41.567043+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:41.648002+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:41.648911+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:41.668976+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:44.068105+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:44.071507+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:44.087311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:44.871522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:44.873703+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:44.893603+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:45.178698+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:45.180329+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:45.195236+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:45.272117+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:45.274028+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:45.291113+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:47.808449+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:47.810384+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:47.827341+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:48.202365+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:48.205022+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:48.227799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:48.603438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:48.606106+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:48.629020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:49.297813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:49.298490+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:49.306664+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:50.403005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:50.405616+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:50.427517+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:52.608649+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:52.611169+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:52.631321+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:22:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:55.218373+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:55.220858+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:55.241760+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57843 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:22:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:22:58.922316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:22:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:22:58.924882+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:22:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:22:58.945551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:00.027610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:00.029625+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:00.047150+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:00.329274+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:00.331103+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:00.351228+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:00.936815+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:00.939454+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:00.961094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:02.141570+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:02.144104+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:02.169068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:03.745069+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:03.747344+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:03.770199+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:05.659403+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:05.661874+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:05.683019+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:06.459978+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:06.462590+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:06.485133+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:06.754851+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:06.758475+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:06.777809+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:08.569988+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:08.572093+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:08.591438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:09.173435+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:09.176844+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:09.196359+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:09.676603+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:09.679230+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:09.688778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:09.697988+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:09.711306+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:09.712339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:10.079616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:10.083106+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:10.104713+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:11.676855+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:11.679547+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:23:11.696921+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:23:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:11.882984+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:11.885588+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:16.197673+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:16.199367+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:16.302917+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:16.304931+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:16.604500+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:16.607005+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:18.705705+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:18.708198+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:19.213501+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:19.216209+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:20.919408+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:20.922059+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:21.624725+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:21.627258+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:23.433928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:23.436508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 02:23:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:23.835389+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:23:23.836802+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-07-10T17:23:23.885477+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i completed (completed=39/39, failed=0)"} {"timestamp": "2026-07-10T17:23:23.920127+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:23:23.935841+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Visual-variant delta sync: +4 / ~0 / -0 (total=4)"} {"timestamp": "2026-07-10T17:23:23.938687+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-07-10T17:23:23.949894+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-07-10T17:23:23.962007+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:23:23.965824+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=entity_t2i, repaired=0)"} INFO: 127.0.0.1:57875 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57875 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:23:28.066453+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_selection (Step shot_selection for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57875 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_selection?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:23:28.076600+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection started (run_id=b3703cf8-6313-41d8-b622-250aa1b998a2, model=gpt-mini)"} {"timestamp": "2026-07-10T17:23:28.083939+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 4 scenes auto-selected (1-shot), 26 scenes to evaluate (abs_max=3, ratio_cap=50%)"} 02:23:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:28.090885+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:28.095800+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:28.097461+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:28.098905+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:35.586435+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:35.589184+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:35.596468+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 1: 2/5 selected (eff_max=2)"} 02:23:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:35.599485+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:36.187425+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:36.189852+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:36.197519+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 2: 2/5 selected (eff_max=2)"} 02:23:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:36.200252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:40.091064+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:40.093595+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:40.101414+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 6: 1/2 selected (eff_max=1)"} 02:23:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:40.104559+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:41.193383+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:41.195877+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:41.204176+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 3: 1/3 selected (eff_max=1)"} 02:23:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:41.207188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:47.115876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:47.118130+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:47.125098+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 5: 2/13 selected (eff_max=3)"} 02:23:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:47.128007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:48.822069+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:48.823711+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:48.830520+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 10: 3/8 selected (eff_max=3)"} 02:23:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:48.833699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:52.034161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:52.036739+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:52.045489+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 7: 2/7 selected (eff_max=3)"} 02:23:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:52.048364+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:52.639655+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:52.642206+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:52.648459+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 8: 2/8 selected (eff_max=3)"} 02:23:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:52.651412+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:54.739572+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:54.741935+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:54.749730+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 11: 2/6 selected (eff_max=3)"} 02:23:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:54.752854+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:23:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:57.852731+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:57.854373+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:57.863679+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 12: 2/12 selected (eff_max=3)"} 02:23:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:57.866906+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:57896 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:23:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:23:59.566587+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:23:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:23:59.569396+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:23:59.577465+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 13: 2/6 selected (eff_max=3)"} 02:23:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:23:59.580317+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:00.469184+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:00.471762+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:00.480545+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 15: 2/5 selected (eff_max=2)"} 02:24:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:00.483432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:02.177411+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:02.180830+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:02.188468+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 14: 2/7 selected (eff_max=3)"} 02:24:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:02.191399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:02.978093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:02.980637+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:02.988941+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 16: 2/5 selected (eff_max=2)"} 02:24:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:02.992011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:05.790473+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:05.792939+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:05.800535+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 18: 2/12 selected (eff_max=3)"} 02:24:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:05.803629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:06.492717+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:06.495435+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:06.502640+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 19: 2/8 selected (eff_max=3)"} 02:24:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:06.504831+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:07.508281+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:07.510645+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:07.519004+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 20: 2/5 selected (eff_max=2)"} 02:24:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:07.522071+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:11.119086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:11.121652+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:11.130755+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 24: 1/3 selected (eff_max=1)"} 02:24:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:11.133960+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:14.215211+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:14.217374+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:14.226115+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 23: 2/4 selected (eff_max=2)"} 02:24:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:14.228463+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:15.510697+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:15.513212+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:15.520369+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 21: 3/17 selected (eff_max=3)"} 02:24:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:15.523720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:19.325543+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:19.327283+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:19.332590+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 25: 3/11 selected (eff_max=3)"} 02:24:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:19.335583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:25.046668+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:25.048982+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 02:24:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:25.056873+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 27: 1/2 selected (eff_max=1)"} {"timestamp": "2026-07-10T17:24:25.057388+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:25.060580+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:25.064080+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 28: 2/10 selected (eff_max=3)"} 02:24:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T17:24:25.065572+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 02:24:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:27.661980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:27.664444+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:27.672356+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 29: 3/10 selected (eff_max=3)"} INFO: 127.0.0.1:57918 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:24:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:30.971008+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:30.973541+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:30.982232+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 26: 3/11 selected (eff_max=3)"} 02:24:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:24:32.773440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:24:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T17:24:32.775894+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:24:32.784060+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 30: 2/4 selected (eff_max=2)"} {"timestamp": "2026-07-10T17:24:32.784582+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 57/193 shots selected across 30 scenes"} {"timestamp": "2026-07-10T17:24:32.798978+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:24:32.862957+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:24:32.876729+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-07-10T17:24:32.885593+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-07-10T17:24:32.895881+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:24:32.898602+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_selection, repaired=0)"} INFO: 127.0.0.1:57925 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57925 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:24:58.233130+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:scene_director (Step scene_director for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57925 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/scene_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:24:58.290222+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:24:58.300442+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-07-10T17:24:58.307862+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-07-10T17:24:58.316184+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:24:58.318041+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=-, repaired=0)"} {"timestamp": "2026-07-10T17:24:58.324058+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=d60eada6-52f6-4ea1-9e8f-9a386a662430, model=gemini-pro)"} {"timestamp": "2026-07-10T17:24:58.330835+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} {"timestamp": "2026-07-10T17:24:58.341286+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=scene_director stem=analyze_schema.json loaded_from=8.202604081200 (latest_in_module=9.202605181550). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} 02:24:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:24:58.345369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57937 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57950 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:26:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:02.240986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:26:02.243724+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-07-10T17:26:02.270725+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:26:02.327133+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:26:02.333392+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-07-10T17:26:02.338182+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-07-10T17:26:02.344633+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:26:02.346689+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=scene_director, repaired=0)"} INFO: 127.0.0.1:57963 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57963 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:26:28.380937+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_director (Step shot_director for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:57963 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:26:28.389833+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director started (run_id=3b14c58a-27dc-435c-a91c-9e4f5809e332, model=gpt)"} 02:26:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:28.400486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:30.385103+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:30.386665+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:30.402872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:32.177563+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:32.179383+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:32.190597+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:33.424145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:33.425919+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:33.437874+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:36.297291+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:36.300178+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:36.315030+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:40.160035+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:40.162664+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:40.177327+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:41.821928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:41.823700+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:41.839583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:44.837252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:44.838790+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:44.860067+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:46.940625+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:46.943208+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:46.955246+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:48.623901+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:48.625648+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:48.638962+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:52.658667+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:52.660467+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:52.674246+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:54.267408+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:54.269662+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:54.285293+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:26:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:56.424397+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:56.426913+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:56.440960+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58010 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:26:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:26:59.930221+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:26:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:26:59.932999+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:26:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:26:59.947408+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:01.939445+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:01.941940+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:01.955673+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:03.474563+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:03.476592+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:03.489389+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:07.428685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:07.431207+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:07.445345+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:09.629274+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:09.631677+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:09.645004+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:15.348754+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:15.350847+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:15.364471+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:18.303053+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:18.305473+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:18.316060+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:20.114579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:20.116284+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:20.128569+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:22.912060+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:22.914581+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:22.928811+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:24.795321+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:24.797764+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:24.811818+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:27.299038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:27.301441+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:27.315070+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58034 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:27:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:31.245252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:31.247794+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:31.260468+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:36.715082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:36.717654+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:36.732313+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:40.208007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:40.209808+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:40.222013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:42.550158+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:42.552415+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:42.566345+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:46.390370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:46.393038+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:46.404854+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:52.192961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:52.195230+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:27:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:52.208225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:27:55.187163+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:27:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:27:55.190655+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:27:55.200860+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_director", "message": "shot_director: 30 scenes (30 LLM, 0 skipped), 57 total shots"} {"timestamp": "2026-07-10T17:27:55.214040+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:27:55.265269+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:27:55.275958+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-07-10T17:27:55.284334+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-07-10T17:27:55.293995+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:27:55.296420+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_director, repaired=0)"} INFO: 127.0.0.1:58048 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58048 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:27:58.545757+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:scene_camera_flow (Step scene_camera_flow for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58048 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/scene_camera_flow?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:27:58.558429+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow started (run_id=ccd71998-e9c0-4aeb-9773-2951b7d0aed3, model=gpt)"} 02:27:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:58.571433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:58.572600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:58.576656+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:27:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:27:58.578921+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:07.927935+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:07.930446+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:07.945184+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S4: 2 stages, 1 shot assignments"} 02:28:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:07.948444+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:11.844441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:11.847015+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:11.862178+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S3: 3 stages, 1 shot assignments"} 02:28:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:11.865709+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:15.707915+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:15.710387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:15.725470+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S2: 5 stages, 2 shot assignments"} 02:28:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:15.729663+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:22.962970+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:22.965485+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:22.981700+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S1: 5 stages, 2 shot assignments"} 02:28:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:22.984621+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:28.250518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:28.253003+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:28.268765+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S6: 3 stages, 1 shot assignments"} 02:28:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:28.271699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58066 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:28:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:28.663589+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:28.665248+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:28.679786+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S5: 5 stages, 2 shot assignments"} 02:28:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:28.682844+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:36.001359+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:36.003725+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:36.018719+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S7: 5 stages, 2 shot assignments"} 02:28:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:36.021972+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:38.029400+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:38.031890+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:38.046738+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S9: 2 stages, 1 shot assignments"} 02:28:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:38.049772+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:40.108065+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:40.109903+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:40.122844+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S8: 6 stages, 2 shot assignments"} 02:28:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:40.125961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:46.791056+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:46.793580+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:46.809196+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S10: 5 stages, 3 shot assignments"} 02:28:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:46.812278+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:28:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:28:53.940333+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:28:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:28:53.942485+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:28:53.956729+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S11: 5 stages, 2 shot assignments"} 02:28:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:28:53.960040+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58084 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:29:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:05.892346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:05.894996+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:05.912722+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S13: 5 stages, 2 shot assignments"} 02:29:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:05.915692+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:10.312994+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:10.314634+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:10.328051+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S14: 6 stages, 2 shot assignments"} 02:29:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:10.331740+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:11.775800+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:11.778320+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:11.793454+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S15: 5 stages, 2 shot assignments"} 02:29:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:11.796226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:18.604082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:18.606178+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:18.620749+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S12: 8 stages, 2 shot assignments"} 02:29:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:18.624020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:22.675342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:22.677398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:22.691439+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S16: 4 stages, 2 shot assignments"} 02:29:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:22.694859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:24.018665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:24.020680+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:24.035794+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S17: 3 stages, 1 shot assignments"} 02:29:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:24.039101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58102 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:29:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:38.811754+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:38.813784+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:38.825961+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S20: 3 stages, 2 shot assignments"} 02:29:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:38.830084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:41.216950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:41.218654+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:41.232566+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S18: 7 stages, 2 shot assignments"} 02:29:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:41.236076+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:44.885944+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:44.887430+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:44.902470+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S19: 6 stages, 2 shot assignments"} 02:29:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:44.905760+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:50.519768+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:50.521070+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:50.530817+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S22: 3 stages, 1 shot assignments"} 02:29:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:50.533210+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:51.126961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:51.129168+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:51.142677+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S21: 5 stages, 3 shot assignments"} 02:29:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:51.145455+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:29:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:29:58.070668+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:29:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:29:58.073214+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:29:58.089885+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S24: 3 stages, 1 shot assignments"} 02:29:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:29:58.093149+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58116 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:30:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:30:03.316474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:30:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:30:03.318040+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:30:03.333648+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S23: 3 stages, 2 shot assignments"} 02:30:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:30:03.336828+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:30:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:30:04.800137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:30:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:30:04.802253+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:30:04.817659+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S27: 2 stages, 1 shot assignments"} 02:30:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:30:04.820450+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:30:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:30:21.330776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:30:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:30:21.333089+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:30:21.348489+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S28: 5 stages, 2 shot assignments"} 02:30:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:30:21.352200+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:30:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:30:22.216144+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:30:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:30:22.218597+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:30:22.237460+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S26: 5 stages, 3 shot assignments"} 02:30:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:30:25.289222+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:30:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:30:25.291830+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:30:25.308824+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S29: 5 stages, 3 shot assignments"} INFO: 127.0.0.1:58130 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:30:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:30:34.383953+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:30:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:30:34.386144+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:30:34.401326+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S25: 8 stages, 3 shot assignments"} 02:30:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:30:37.219138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:30:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:30:37.221683+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:30:37.236691+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S30: 3 stages, 2 shot assignments"} {"timestamp": "2026-07-10T17:30:37.254544+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:30:37.312656+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:30:37.321535+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-07-10T17:30:37.329719+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-07-10T17:30:37.337928+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:30:37.340942+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=scene_camera_flow, repaired=0)"} INFO: 127.0.0.1:58137 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58137 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:30:58.855419+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_dependency (Step shot_dependency for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58137 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_dependency?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:30:58.866983+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency started (run_id=bce09655-3392-46f5-82d5-f94c201a4396, model=gpt)"} {"timestamp": "2026-07-10T17:30:58.872946+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_step", "message": "shot_dependency: 36/57 shots linked (code-based scoring)"} {"timestamp": "2026-07-10T17:30:58.882211+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency completed (completed=57/57, failed=0)"} {"timestamp": "2026-07-10T17:30:58.937903+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:30:58.947619+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-07-10T17:30:58.954589+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-07-10T17:30:58.962270+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:30:58.964400+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_dependency, repaired=0)"} INFO: 127.0.0.1:58147 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58147 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:31:28.942685+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:outlook_phase1 (Step outlook_phase1 for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58147 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/outlook_phase1?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:31:28.996167+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:31:29.005815+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-07-10T17:31:29.012775+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-07-10T17:31:29.020786+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:31:29.022806+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=-, repaired=0)"} {"timestamp": "2026-07-10T17:31:29.028572+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 started (run_id=568edd54-c909-4f49-ac4d-2be5b1a23ef5, model=gemini-pro)"} {"timestamp": "2026-07-10T17:31:29.034098+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1: 30 scenes, 11 characters"} 02:31:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:31:29.039285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58156 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:32:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:32:16.245448+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:32:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:32:16.247770+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-07-10T17:32:16.258503+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 complete: 10 outlooks (O01~O10)"} {"timestamp": "2026-07-10T17:32:16.258789+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 1/2: 1 orphan characters — ['C07(로트와일러)']"} 02:32:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:32:16.262731+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:32:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:32:23.061800+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:32:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:32:23.063924+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-07-10T17:32:23.074959+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 1: LLM returned 0 outlooks, stopping"} {"timestamp": "2026-07-10T17:32:23.075546+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) assigned to 1 characters: ['C07']"} {"timestamp": "2026-07-10T17:32:23.085191+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 completed (completed=11/11, failed=0)"} {"timestamp": "2026-07-10T17:32:23.142561+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:32:23.154202+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-07-10T17:32:23.162542+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-07-10T17:32:23.172475+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:32:23.175347+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=outlook_phase1, repaired=0)"} INFO: 127.0.0.1:58173 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58173 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:32:29.073490+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:outlook_phase2 (Step outlook_phase2 for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58173 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/outlook_phase2?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:32:29.129106+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:32:29.137780+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-07-10T17:32:29.144572+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-07-10T17:32:29.152724+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:32:29.154579+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=-, repaired=0)"} {"timestamp": "2026-07-10T17:32:29.159762+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=19403412-c493-4f6f-98d3-ecde05fc9dd4, model=gemini-pro)"} {"timestamp": "2026-07-10T17:32:29.162528+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 10 outlooks to 30 scenes (O00: 1 chars excluded)"} 02:32:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:32:29.164996+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58183 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:33:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:33:05.019241+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:33:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:33:05.021620+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-07-10T17:33:05.035048+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 27 scene assignments"} {"timestamp": "2026-07-10T17:33:05.035363+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1/3: 1씬 누락"} 02:33:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:33:05.039672+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:33:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:33:23.466066+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:33:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:33:23.467854+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-07-10T17:33:23.476115+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1: 1/1 복구"} {"timestamp": "2026-07-10T17:33:23.476378+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 injected into 1 scene-character slots"} {"timestamp": "2026-07-10T17:33:23.488466+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=27/30, failed=0)"} {"timestamp": "2026-07-10T17:33:23.544696+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:33:23.556529+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-07-10T17:33:23.565256+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-07-10T17:33:23.575332+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:33:23.577805+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=outlook_phase2, repaired=0)"} INFO: 127.0.0.1:58195 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58195 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:33:29.182985+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:outlook_phase3 (Step outlook_phase3 for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58195 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/outlook_phase3?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:33:29.237800+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:33:29.249014+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-07-10T17:33:29.256106+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-07-10T17:33:29.263965+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:33:29.265659+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=-, repaired=0)"} {"timestamp": "2026-07-10T17:33:29.271565+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=44ee2f2a-9995-43c9-aeba-f4c8771a9fb9, model=gemini-pro)"} {"timestamp": "2026-07-10T17:33:29.275337+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 10 outlooks, 27 assignments (O00 protected)"} 02:33:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:33:29.280360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:33:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:33:38.451402+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:33:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:33:38.453419+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-07-10T17:33:38.461591+00:00", "level": "INFO", "logger": "app.modules.pipeline.outlook_extractor_v2", "message": "Phase3 code cleanup: 10→10 outlooks (removed 0, merged 0)"} {"timestamp": "2026-07-10T17:33:38.461715+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) preserved in phase3 result"} {"timestamp": "2026-07-10T17:33:38.461783+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 11 outlooks (removed 0)"} {"timestamp": "2026-07-10T17:33:38.469934+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=11/1, failed=0)"} {"timestamp": "2026-07-10T17:33:38.523058+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:33:38.535320+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-07-10T17:33:38.558307+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +11 / -0)"} {"timestamp": "2026-07-10T17:33:38.569727+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-07-10T17:33:38.580501+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:33:38.583086+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=outlook_phase3, repaired=0)"} INFO: 127.0.0.1:58213 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58213 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:33:59.266546+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_staging (Step shot_staging for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58213 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_staging?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:33:59.280849+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging started (run_id=3a66a8cc-88cb-42da-bd63-9fcf21b13696, model=gpt)"} {"timestamp": "2026-07-10T17:33:59.290304+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging: 57 selected shots to analyze"} 02:33:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:33:59.293158+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58226 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58236 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58248 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58261 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:36:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:36:05.472526+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:36:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:36:05.475290+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:36:05.506585+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 1/6 attempt 1: 10 shots ok"} 02:36:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:36:05.508839+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58273 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58283 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58297 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:37:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:37:55.542864+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:37:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:37:55.545446+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:37:55.574862+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 2/6 attempt 1: 10 shots ok"} 02:37:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:37:55.577313+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58308 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58318 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58335 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58347 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:39:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:39:50.582684+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:39:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:39:50.585359+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:39:50.615806+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 3/6 attempt 1: 10 shots ok"} 02:39:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:39:50.618188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58358 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58368 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58377 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58388 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:41:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:41:38.022335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:41:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:41:38.025406+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:41:38.054135+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 4/6 attempt 1: 10 shots ok"} 02:41:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:41:38.056551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58398 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58413 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58423 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58432 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:43:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:43:46.004315+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:43:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:43:46.006885+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:43:46.038230+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 5/6 attempt 1: 10 shots ok"} 02:43:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:43:46.040802+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58450 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58460 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58470 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:45:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:45:19.244004+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:45:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:45:19.246606+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:45:19.275302+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 6/6 attempt 1: 7 shots ok"} {"timestamp": "2026-07-10T17:45:19.291771+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging completed (completed=57/57, failed=0)"} {"timestamp": "2026-07-10T17:45:19.340254+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:45:19.347083+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-07-10T17:45:19.360274+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T17:45:19.369188+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-07-10T17:45:19.376277+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:45:19.378146+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_staging, repaired=0)"} INFO: 127.0.0.1:58481 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58481 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:45:30.286336+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:background_classify (Step background_classify for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58481 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/background_classify?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:45:30.296425+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify started (run_id=da9734e6-2630-4abc-9c5b-d6e9fee55422, model=gpt)"} 02:45:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:45:30.303664+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58492 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:46:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:46:22.590641+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:46:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:46:22.593054+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:46:22.620267+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T17:46:22.679813+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:46:22.691314+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-07-10T17:46:22.709369+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T17:46:22.718596+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-07-10T17:46:22.728421+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:46:22.733127+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=background_classify, repaired=0)"} INFO: 127.0.0.1:58502 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58502 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:46:30.411251+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:background_master_plan (Step background_master_plan for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58502 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/background_master_plan?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:46:30.424126+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan started (run_id=9ce0ab07-c302-4949-84ed-89473129e2e4, model=gpt)"} 02:46:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:46:30.445888+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:46:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:46:30.449369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:46:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:46:30.452982+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:46:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:46:30.458074+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:46:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:46:47.736575+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:46:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:46:47.739212+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:46:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:46:49.986424+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:46:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:46:49.988902+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:46:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:46:51.217134+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:46:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:46:51.219638+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:58515 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:47:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:47:22.559196+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:47:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:47:22.561444+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:47:22.601331+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan completed (completed=4/4, failed=0)"} {"timestamp": "2026-07-10T17:47:22.656878+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:47:22.666264+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-07-10T17:47:22.683109+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T17:47:22.692143+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-07-10T17:47:22.702002+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:47:22.704595+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=background_master_plan, repaired=0)"} INFO: 127.0.0.1:58530 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58530 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:47:30.541334+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:floor_plan_prompt (Step floor_plan_prompt for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58530 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/floor_plan_prompt?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:47:30.554590+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt started (run_id=0863a393-ee4e-4c99-9e91-2bfc82aceedb, model=gpt)"} 02:47:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:47:30.570981+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:47:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:47:30.575708+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:47:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:47:30.577575+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:47:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:47:30.581114+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58544 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58555 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:48:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:48:42.300271+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:48:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:48:42.303462+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:48:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:48:42.324271+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:48:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:48:43.207705+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:48:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:48:43.209645+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:48:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:48:43.231602+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:48:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:48:49.067321+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:48:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:48:49.069839+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:48:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:48:49.093974+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:48:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:48:52.571047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:48:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:48:52.573559+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:48:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:48:52.598916+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58577 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58588 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:49:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:49:32.318223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:49:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:49:32.319914+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:49:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:49:32.342756+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:49:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:49:32.361337+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:49:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:49:32.362469+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:49:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:49:32.376190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:49:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:49:34.724017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:49:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:49:34.726566+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:49:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:49:34.749382+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:49:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:49:43.943793+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:49:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:49:43.946646+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:49:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:49:43.970116+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:58600 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:50:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:50:10.581311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:50:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:50:10.583404+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:50:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:50:10.604484+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:50:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:50:11.457937+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:50:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:50:11.460547+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:50:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:50:11.483788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:50:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:50:27.990994+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:50:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:50:27.993099+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:58615 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:50:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:50:33.918005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:50:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:50:33.920383+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 02:50:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:50:58.019953+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:50:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:50:58.022488+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:58624 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:51:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:51:00.905601+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:51:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:51:00.908134+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:51:00.944367+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T17:51:01.002872+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:51:01.015201+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-07-10T17:51:01.032780+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T17:51:01.042074+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-07-10T17:51:01.051342+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:51:01.053519+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=floor_plan_prompt, repaired=0)"} INFO: 127.0.0.1:58634 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58634 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:51:30.922095+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_essence_extraction (Step shot_essence_extraction for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58634 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_essence_extraction?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:51:30.984759+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:51:30.994272+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-07-10T17:51:31.007930+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T17:51:31.015443+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-07-10T17:51:31.023730+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:51:31.025859+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_essence_extraction, repaired=0)"} INFO: 127.0.0.1:58646 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58646 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:52:01.010328+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:scene_consistency (Step scene_consistency for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58646 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/scene_consistency?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:52:01.026683+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency started (run_id=ef04cea7-1a87-4975-9daa-856c5604e626, model=gemini-pro)"} {"timestamp": "2026-07-10T17:52:01.035791+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency: 22 scenes need LLM (workers=5, already_done=0, single_shot_skipped=8)"} 02:52:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:01.042037+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:01.045563+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:01.049124+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:01.050980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:01.052321+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:52:21.859025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:52:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:52:21.861192+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-07-10T17:52:21.876827+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S8: 1 fixed elements"} 02:52:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:21.879587+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:52:28.079311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:52:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:52:28.081878+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-07-10T17:52:28.099639+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S7: 3 fixed elements"} 02:52:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:28.102691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:52:29.322940+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:52:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:52:29.324842+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-07-10T17:52:29.335319+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S2: 2 fixed elements"} 02:52:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:29.339219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58667 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:52:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:52:31.321082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:52:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:52:31.322983+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-07-10T17:52:31.334317+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S1: 2 fixed elements"} 02:52:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:31.337607+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:52:40.592952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:52:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:52:40.595554+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-07-10T17:52:40.613245+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S5: 2 fixed elements"} 02:52:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:40.616133+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:52:45.735805+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:52:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:52:45.738429+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-07-10T17:52:45.753226+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S11: 1 fixed elements"} 02:52:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:45.755664+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:52:48.404125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:52:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:52:48.405882+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-07-10T17:52:48.420653+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S12: 1 fixed elements"} 02:52:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:48.422880+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:52:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:52:58.265912+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:52:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:52:58.268537+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-07-10T17:52:58.284476+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S10: 1 fixed elements"} 02:52:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:52:58.287040+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58680 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:53:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:07.037128+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:07.039691+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-07-10T17:53:07.053829+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S15: 2 fixed elements"} 02:53:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:07.057076+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:08.018977+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:08.022095+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-07-10T17:53:08.036917+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S13: 2 fixed elements"} 02:53:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:08.039449+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:08.654037+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:08.656453+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-07-10T17:53:08.660024+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_consistency] Tier 1 failed (LLM returned empty response for step=scene_consistency, model=gemini-pro), trying sanitized input"} 02:53:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:08.664799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:09.231096+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:09.233584+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-07-10T17:53:09.235241+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_consistency] Tier 2 sanitized failed (LLM returned empty response for step=scene_consistency, model=gemini-pro), trying GPT fallback"} 02:53:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:53:09.239478+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:53:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:10.970583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:10.973147+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-07-10T17:53:10.989614+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S16: 2 fixed elements"} 02:53:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:10.993441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:13.536915+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:13.538905+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-07-10T17:53:13.554053+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S14: 2 fixed elements"} 02:53:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:13.556111+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:15.919698+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:15.922311+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-07-10T17:53:15.936842+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S18: 0 fixed elements"} 02:53:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:15.939720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:16.585722+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:16.587361+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-07-10T17:53:16.589454+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_consistency] Tier 1 failed (LLM returned empty response for step=scene_consistency, model=gemini-pro), trying sanitized input"} 02:53:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:16.593181+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:17.064909+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:17.067102+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-07-10T17:53:17.069811+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_consistency] Tier 2 sanitized failed (LLM returned empty response for step=scene_consistency, model=gemini-pro), trying GPT fallback"} 02:53:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T17:53:17.072901+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 02:53:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:17.227699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:53:17.229896+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:53:17.246322+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S20: 1 fixed elements"} 02:53:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:17.248853+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:29.589911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:29.592418+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-07-10T17:53:29.607962+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S19: 1 fixed elements"} 02:53:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:29.611059+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58699 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:53:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:34.718524+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:34.721129+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-07-10T17:53:34.735818+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S23: 1 fixed elements"} 02:53:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:34.738599+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:49.553613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:49.556250+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-07-10T17:53:49.571803+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S26: 1 fixed elements"} 02:53:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T17:53:49.575001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 02:53:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:51.781759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:53:51.784436+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-07-10T17:53:51.800327+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S21: 2 fixed elements"} 02:53:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:53:53.015740+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:53:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T17:53:53.018188+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T17:53:53.033048+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S25: 2 fixed elements"} INFO: 127.0.0.1:58716 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 02:54:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:54:01.192791+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:54:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:54:01.194718+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-07-10T17:54:01.207434+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S28: 1 fixed elements"} 02:54:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:54:07.293759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:54:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:54:07.296326+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-07-10T17:54:07.311938+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S29: 1 fixed elements"} 02:54:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T17:54:19.963183+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 02:54:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T17:54:19.965733+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-07-10T17:54:19.981482+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S30: 2 fixed elements"} {"timestamp": "2026-07-10T17:54:19.997913+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-10T17:54:20.053891+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T17:54:20.065359+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-07-10T17:54:20.081745+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T17:54:20.091004+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-07-10T17:54:20.099608+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T17:54:20.101825+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=scene_consistency, repaired=0)"} INFO: 127.0.0.1:58725 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58725 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:54:31.257888+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:floor_plan_render (Step floor_plan_render for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58725 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/floor_plan_render?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T17:54:31.268506+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render started (run_id=2292cbaf-5a0e-42a5-8c59-17c42079f3d2, model=gpt)"} INFO: 127.0.0.1:58738 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58748 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58759 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58771 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58781 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58795 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58805 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58815 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58831 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58844 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58855 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58865 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58901 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58912 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58922 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58937 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58947 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58957 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58974 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:04:12.684443+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: registered 14 floor_plan ImageAssets"} {"timestamp": "2026-07-10T18:04:12.717738+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T18:04:12.784181+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:04:12.799194+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-07-10T18:04:12.817594+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:04:12.827551+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-07-10T18:04:12.837866+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:04:12.840448+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=floor_plan_render, repaired=0)"} INFO: 127.0.0.1:58984 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58984 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:04:32.140136+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:floor_plan_light_sidecar (Step floor_plan_light_sidecar for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58984 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/floor_plan_light_sidecar?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:04:32.146699+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar started (run_id=e0e53577-e04d-45d3-8f10-e32fd3fb37a9, model=gpt)"} {"timestamp": "2026-07-10T18:04:32.152190+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-10T18:04:32.197354+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:04:32.205944+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-07-10T18:04:32.220434+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:04:32.227278+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-07-10T18:04:32.235064+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:04:32.237107+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=floor_plan_light_sidecar, repaired=0)"} INFO: 127.0.0.1:58994 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58994 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:05:02.225946+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:floor_plan_overlay_payload (Step floor_plan_overlay_payload for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:58994 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/floor_plan_overlay_payload?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:05:02.236242+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload started (run_id=88705a89-a44f-4d0a-8c2d-54e9e6da879e, model=gpt)"} {"timestamp": "2026-07-10T18:05:02.256649+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T18:05:02.309600+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:05:02.319660+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-07-10T18:05:02.336601+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:05:02.344305+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-07-10T18:05:02.353123+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:05:02.355496+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=floor_plan_overlay_payload, repaired=0)"} INFO: 127.0.0.1:59004 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59004 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:05:32.311729+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:base_location_dossier (Step base_location_dossier for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59004 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/base_location_dossier?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:05:32.322805+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier started (run_id=943e7646-9abf-4714-898e-994f5b721948, model=gpt)"} {"timestamp": "2026-07-10T18:05:32.344536+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T18:05:32.394220+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:05:32.403528+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-07-10T18:05:32.419034+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:05:32.426701+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-07-10T18:05:32.435633+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:05:32.437937+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=base_location_dossier, repaired=0)"} INFO: 127.0.0.1:59014 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59014 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:06:02.397887+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:floor_plan_geometry_readback (Step floor_plan_geometry_readback for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59014 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/floor_plan_geometry_readback?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:06:02.408776+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback started (run_id=feb0216c-6149-4d43-979b-af4302d513ba, model=gpt)"} 03:06:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:06:02.418522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:06:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:06:08.976980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:06:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:06:08.996671+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:06:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:06:21.091016+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:06:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:06:21.108154+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:06:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:06:32.216803+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:06:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:06:32.237437+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59027 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:06:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:06:55.714584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:06:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:06:55.731056+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59037 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59050 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:07:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:07:32.983610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:07:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:07:32.999681+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59058 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:08:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:08:05.680082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:08:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:08:05.696005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:08:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:08:17.465591+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:08:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:08:17.483969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:08:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:08:22.752679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:08:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:08:22.773097+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:08:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:08:29.745452+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:08:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:08:29.767319+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59067 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:08:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:08:39.226544+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:08:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:08:39.244046+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:08:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:08:46.081001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:08:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:08:46.099794+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:08:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:08:52.295068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:08:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:08:52.312639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59082 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:09:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:09:08.054573+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:09:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:09:08.072860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:09:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:09:20.876060+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:09:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:09:20.894050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:09:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:09:26.402945+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:09:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:09:26.423878+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59093 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:09:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:09:33.367811+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-07-10T18:09:33.432666+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback completed (completed=14/1, failed=0)"} {"timestamp": "2026-07-10T18:09:33.477100+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:09:33.482968+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-07-10T18:09:33.496363+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:09:33.501379+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-07-10T18:09:33.507330+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:09:33.509414+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=floor_plan_geometry_readback, repaired=0)"} INFO: 127.0.0.1:59105 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59105 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:10:02.770175+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:floor_plan_semantic_readback (Step floor_plan_semantic_readback for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59105 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/floor_plan_semantic_readback?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:10:02.780581+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback started (run_id=5a544087-4414-4091-a927-5b757aab793b, model=gpt)"} {"timestamp": "2026-07-10T18:10:02.788677+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-10T18:10:02.846325+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:10:02.856656+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-07-10T18:10:02.872660+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:10:02.880244+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-07-10T18:10:02.889414+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:10:02.891978+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=floor_plan_semantic_readback, repaired=0)"} INFO: 127.0.0.1:59114 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59114 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:10:32.871368+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_projection_card (Step shot_projection_card for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59114 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_projection_card?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:10:32.891181+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card started (run_id=0be5bad0-155b-4e3e-8230-204bd5e47588, model=gpt)"} {"timestamp": "2026-07-10T18:10:32.898392+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-10T18:10:32.951290+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:10:32.959990+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-07-10T18:10:32.974497+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:10:32.981478+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-07-10T18:10:32.988957+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:10:32.991036+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_projection_card, repaired=0)"} INFO: 127.0.0.1:59123 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59123 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:11:02.960433+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:bg_space_partition (Step bg_space_partition for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59123 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/bg_space_partition?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:11:02.975701+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition started (run_id=7cf25f47-b1d6-496a-bad6-1c779f33ec85, model=gpt)"} {"timestamp": "2026-07-10T18:11:02.985544+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-10T18:11:03.041783+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:11:03.051668+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-07-10T18:11:03.069381+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:11:03.080679+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-07-10T18:11:03.091801+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:11:03.094271+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=bg_space_partition, repaired=0)"} INFO: 127.0.0.1:59135 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59135 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:11:33.019977+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:dwelling_zone_map (Step dwelling_zone_map for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59135 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/dwelling_zone_map?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:11:33.030456+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map started (run_id=6e2aab50-b548-4841-bbcd-a746697e12bc, model=gpt)"} {"timestamp": "2026-07-10T18:11:33.037310+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-10T18:11:33.090778+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:11:33.099219+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-07-10T18:11:33.113363+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:11:33.118335+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-07-10T18:11:33.124515+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:11:33.126268+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=dwelling_zone_map, repaired=0)"} INFO: 127.0.0.1:59145 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59145 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:12:03.107010+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_aware_bg_render_plan (Step shot_aware_bg_render_plan for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59145 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_aware_bg_render_plan?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:12:03.117449+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan started (run_id=dce8e3e5-82b6-4c9b-bd62-8a7ef86625f7, model=gpt)"} 03:12:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:12:03.134296+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59160 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59171 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:13:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:13:04.083184+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:13:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:13:04.095570+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59178 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59195 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:14:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:14:05.711556+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:14:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:14:05.723346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:14:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:14:25.203050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:14:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:14:25.215782+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59204 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59214 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:15:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:15:11.354924+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:15:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:15:11.367138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59224 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:15:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:15:33.621794+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:15:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:15:33.632690+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:16:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:16:01.177524+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:16:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:16:01.187015+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59232 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:16:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:16:32.028086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:16:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:16:32.038834+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59241 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:17:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:17:01.640522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:17:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:17:01.650644+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59250 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:17:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:17:19.716104+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:17:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:17:19.725997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59263 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:17:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:17:44.006534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:17:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:17:44.017203+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59273 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59283 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:18:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:18:40.106643+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:18:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:18:40.118732+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:19:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:19:00.413494+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:19:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:19:00.425815+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59299 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:19:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:19:30.937065+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:19:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:19:30.946421+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59312 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:19:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:19:59.848091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:19:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:19:59.854700+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59322 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:20:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:20:10.696005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-07-10T18:20:10.723023+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan completed (completed=14/1, failed=0)"} {"timestamp": "2026-07-10T18:20:10.783848+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:20:10.793320+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-07-10T18:20:10.814125+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:20:10.826793+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-07-10T18:20:10.839630+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:20:10.842567+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_aware_bg_render_plan, repaired=0)"} INFO: 127.0.0.1:59333 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59333 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:20:33.873898+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:background_prompt (Step background_prompt for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59333 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/background_prompt?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:20:33.888272+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt started (run_id=d3b23f55-34a2-4149-b815-da75f7d5d223, model=gpt)"} 03:20:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:20:33.907453+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:20:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:20:33.910757+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:20:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:20:33.911720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:20:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:20:33.916750+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:20:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:20:58.434052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:20:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:20:58.436440+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:20:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:20:58.451533+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59347 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:21:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:21:04.986424+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:21:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:21:04.989009+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:21:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:21:05.002703+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:21:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:21:05.291600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:21:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:21:05.293327+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:21:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:21:05.307907+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:21:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:21:06.186402+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:21:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:21:06.187927+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:21:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:21:06.203180+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:21:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:21:30.651783+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:21:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:21:30.654263+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:21:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:21:30.668174+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59362 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:21:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:21:35.633770+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:21:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:21:35.635878+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:21:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:21:35.649654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:21:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:21:42.605958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:21:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:21:42.608513+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:21:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:21:42.626029+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:21:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:21:43.372598+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:21:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:21:43.376431+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:21:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:21:43.387047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:22:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:02.238138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:02.240021+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:22:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:02.252493+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:22:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:03.224871+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:03.227367+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:22:03.238770+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L12B02 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 03:22:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:03.243051+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59375 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:22:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:17.280943+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:17.282713+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:22:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:17.294742+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:22:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:18.645299+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:18.647767+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:22:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:18.664292+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:22:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:26.410098+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:26.412282+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:22:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:26.425700+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:22:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:31.375691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:31.378548+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:22:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:31.393129+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59393 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:22:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:38.491965+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:38.494175+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:22:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:38.507612+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:22:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:44.511304+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:44.513614+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:22:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:44.527824+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:22:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:22:59.726349+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:22:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:22:59.728460+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:22:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:22:59.742353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:23:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:23:02.690769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:23:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:23:02.693132+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:23:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:23:02.708922+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59406 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:23:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:23:10.307936+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:23:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:23:10.309781+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:23:10.318165+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L22B02 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 03:23:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:23:10.322912+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:23:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:23:11.973829+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:23:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:23:11.977147+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:23:11.986021+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L22B01 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 03:23:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:23:11.990788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:23:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:23:32.181594+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:23:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:23:32.183498+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:59416 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:23:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:23:35.809877+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:23:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:23:35.811421+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:23:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:23:40.462925+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:23:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:23:40.464749+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:23:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:23:44.769115+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:23:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:23:44.771247+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:23:44.793827+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt completed (completed=24/24, failed=0)"} {"timestamp": "2026-07-10T18:23:44.839909+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:23:44.850817+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-07-10T18:23:44.866518+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:23:44.875546+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-07-10T18:23:44.885177+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:23:44.887503+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=background_prompt, repaired=0)"} INFO: 127.0.0.1:59431 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59431 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:24:04.187190+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:episode_reference_policy (Step episode_reference_policy for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59431 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/episode_reference_policy?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:24:04.197536+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy started (run_id=c44c16c0-fa4c-44c8-a93e-b0f9df4ca43f, model=gpt)"} {"timestamp": "2026-07-10T18:24:04.209677+00:00", "level": "INFO", "logger": "app.core.steps.episode_reference_policy_step", "message": "episode_reference_policy: 40 entities — 30 text_only, 10 other"} {"timestamp": "2026-07-10T18:24:04.216045+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy completed (completed=40/40, failed=0)"} {"timestamp": "2026-07-10T18:24:04.264519+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:24:04.274286+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-07-10T18:24:04.289818+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:24:04.298737+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-07-10T18:24:04.307881+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T18:24:04.310566+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=episode_reference_policy, repaired=0)"} INFO: 127.0.0.1:59442 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59442 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:24:34.274526+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:visual_continuity_anchor (Step visual_continuity_anchor for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59442 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/visual_continuity_anchor?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:24:34.292739+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor started (run_id=232175b2-9e69-4e6c-b736-6a0e0ec9b34d, model=gpt)"} 03:24:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:24:34.306222+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:24:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:24:47.706827+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:24:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:24:47.709408+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:24:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:24:47.728974+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:24:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:24:59.057701+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:24:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:24:59.060258+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:24:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:24:59.075327+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59456 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:25:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:25:11.837131+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:25:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:25:11.839489+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:25:11.867798+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor completed (completed=3/3, failed=0)"} {"timestamp": "2026-07-10T18:25:11.926247+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:25:11.937809+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-07-10T18:25:11.955437+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:25:11.964609+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-07-10T18:25:11.974308+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T18:25:11.976784+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=visual_continuity_anchor, repaired=0)"} INFO: 127.0.0.1:59466 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59466 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:25:34.410068+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:scene_detail (Step scene_detail for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59466 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/scene_detail?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:25:34.460130+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:25:34.472319+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-07-10T18:25:34.488228+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:25:34.496162+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-07-10T18:25:34.504991+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T18:25:34.506756+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=-, repaired=0)"} {"timestamp": "2026-07-10T18:25:34.515989+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail started (run_id=520022b6-45c8-4352-8a6d-9737563321c2, model=gemini-pro)"} {"timestamp": "2026-07-10T18:25:34.522419+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 57 shot_staging entries loaded"} {"timestamp": "2026-07-10T18:25:34.523743+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 scenes with fixed elements loaded"} {"timestamp": "2026-07-10T18:25:34.534925+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 40 shots mapped from 24 backgrounds"} {"timestamp": "2026-07-10T18:25:34.536177+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 40 shots mapped to bg_id from 24 backgrounds"} {"timestamp": "2026-07-10T18:25:34.541787+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 7 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-07-10T18:25:34.546330+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail: 30 segments → 57 tasks (shot-based, 0 edited skipped)"} 03:25:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:25:34.588767+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:25:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:25:34.590165+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:25:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:25:34.593639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:25:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:25:34.595240+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:25:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:25:34.596581+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:26:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:01.757469+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:01.759386+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-07-10T18:26:01.791617+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:26:01.791788+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:26:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:01.811289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59483 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:26:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:06.560810+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:06.563482+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-07-10T18:26:06.585735+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:26:06.585916+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:26:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:06.604659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:26:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:11.101608+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:11.103515+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-07-10T18:26:11.120312+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 1: 제거할 ID: L01 — retry"} 03:26:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:11.122470+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:26:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:11.697298+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:11.701013+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-07-10T18:26:11.721282+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S1 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:26:11.721510+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S1 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:26:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:11.742358+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:26:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:19.068533+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:19.071346+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-07-10T18:26:19.094664+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:26:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:19.113600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:26:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:29.485245+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:29.488742+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:26:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:26:29.522090+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:26:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:33.304785+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:33.306945+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-07-10T18:26:33.328172+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 5: 제거할 ID: L04 — retry"} 03:26:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:33.330417+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59499 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:26:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:45.765613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:26:45.768135+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:26:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:26:45.784780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:26:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:48.996342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:48.998979+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-07-10T18:26:49.023123+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S6 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:26:49.032980+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C07 (visible=['C06'])"} 03:26:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:49.042193+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:26:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:52.125665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:52.127333+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-07-10T18:26:52.149244+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S1 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:26:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:52.168140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:26:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:54.813146+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:26:54.814499+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:26:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:26:54.823338+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:26:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:59.653691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:59.656566+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:26:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:26:59.699212+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:26:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:26:59.777589+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:26:59.779473+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-07-10T18:26:59.796074+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 5: C05 유효하지 않은 아웃룩 → O05로 교체"} 03:26:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:26:59.805554+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:27:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:03.886653+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:27:03.889119+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:27:03.898025+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S4_Shot1: owned redraw repair 성공 — 1 redraw_violation 해소"} 03:27:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:03.912580+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59514 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:27:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:06.280941+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:27:06.282430+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:27:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:06.304501+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:18.148737+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:27:18.151434+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-07-10T18:27:18.173722+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: 제거할 ID: L01 — retry"} 03:27:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:18.176186+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:27.013320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:27:27.016986+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-07-10T18:27:27.039025+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: 제거할 ID: L01 — retry"} 03:27:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:27.041558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:28.218012+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:27:28.220504+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:27:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:27:28.252450+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:27:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:29.424818+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:27:29.427255+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:27:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:27:29.459474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:27:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:33.931441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:27:33.934308+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-07-10T18:27:33.958605+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S9 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:27:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:33.976120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59533 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:27:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:36.026273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:27:36.028049+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:36.047212+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:37.546746+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:27:37.549240+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:27:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:37.573492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:47.846741+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:27:47.849634+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-07-10T18:27:47.874642+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: retry 후에도 위반 {'L02'} — 강제 제거"} {"timestamp": "2026-07-10T18:27:47.874911+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S7 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:27:47.875190+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C07 (visible=['C06'])"} 03:27:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:47.893253+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:27:56.900647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:27:56.903374+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-07-10T18:27:56.924531+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 10: 제거할 ID: L03 — retry"} 03:27:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:27:56.927080+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59544 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:28:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:10.559725+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:10.562521+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-07-10T18:28:10.586659+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: retry 후에도 위반 {'L02'} — 강제 제거"} 03:28:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:28:10.605028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:13.642774+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:13.645522+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-07-10T18:28:13.666140+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 11: 제거할 ID: L13 — retry"} 03:28:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:28:13.668775+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:14.378003+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:14.380809+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:28:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:28:14.418647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:28:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:14.887371+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:14.888187+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-07-10T18:28:14.897187+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S10 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:28:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:28:14.903854+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:28:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:18.306220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:28:18.308081+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:28:18.316859+00:00", "level": "WARNING", "logger": "app.core.visible_entities_validator", "message": "validate_visible_entities_contract audit: S10_Shot8 entity_canon.name='민숙' base=C05 — no specific ID (candidates=['C05', 'C05O05']) within ±60 window (Source 2 downgraded to audit, see W20F2)."} {"timestamp": "2026-07-10T18:28:18.317134+00:00", "level": "WARNING", "logger": "app.core.visible_entities_validator", "message": "validate_visible_entities_contract audit: S10_Shot8 entity_canon.name='민숙' base=C05 — no specific ID (candidates=['C05', 'C05O05']) within ±60 window (Source 2 downgraded to audit, see W20F2)."} {"timestamp": "2026-07-10T18:28:18.317248+00:00", "level": "WARNING", "logger": "app.core.visible_entities_validator", "message": "validate_visible_entities_contract audit: S10_Shot8 entity_canon.name='낯선 남자' base=C08 — no specific ID (candidates=['C08', 'C08O07']) within ±60 window (Source 2 downgraded to audit, see W20F2)."} 03:28:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:28:18.332676+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:21.789304+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:28:21.791600+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:28:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:28:21.815254+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:24.019083+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:24.021714+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-07-10T18:28:24.043931+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 10: retry 후에도 위반 {'L00'} — 강제 제거"} 03:28:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:28:24.062841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59560 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:28:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:38.185975+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:38.189494+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-07-10T18:28:38.211082+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 11: 제거할 ID: L13 — retry"} 03:28:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:28:38.213828+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:40.407274+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:40.409987+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-07-10T18:28:40.433855+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 11: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-07-10T18:28:40.434100+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S11 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:28:40.444760+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C04 (visible=['C06'])"} 03:28:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:28:40.454190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:43.420569+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:43.424395+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-07-10T18:28:43.447293+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:28:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:28:43.459968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:28:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:44.808985+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:44.811466+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-07-10T18:28:44.832390+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot11 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:28:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:28:44.843062+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:28:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:53.572658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:28:53.575173+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:28:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:28:53.608070+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:53.879907+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:28:53.882153+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:28:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:28:53.917768+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:28:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:28:54.269958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:28:54.272441+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:28:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:28:54.285551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:29:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:04.310128+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:29:04.312455+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:29:04.347396+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:29:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:04.602094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:29:04.605338+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:29:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:29:04.618428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59586 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:29:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:06.215702+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:29:06.217419+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:29:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:29:06.228009+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:29:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:10.863268+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:29:10.865983+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-07-10T18:29:10.888950+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: 제거할 ID: L01 — retry"} 03:29:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:29:10.891551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:11.952575+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:29:11.955070+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:29:11.964899+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S12_Shot5: owned redraw repair 성공 — 2 redraw_violation 해소"} 03:29:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:29:11.980433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:14.069809+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:29:14.072032+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:29:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:29:14.097286+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:15.395122+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:29:15.397692+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:29:15.432866+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:29:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:18.486077+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:29:18.488332+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:29:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:29:18.502242+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:29:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:22.696159+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:29:22.699509+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:29:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:29:22.722509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:24.410352+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:29:24.412913+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:29:24.421886+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S13_Shot2: owned redraw repair 성공 — 1 redraw_violation 해소"} 03:29:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:29:24.436922+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59606 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:29:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:35.277013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:29:35.279223+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-07-10T18:29:35.297230+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 14: 제거할 ID: L04 — retry"} 03:29:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:29:35.300346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:38.590162+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:29:38.592650+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-07-10T18:29:38.612969+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S15 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:29:38.622554+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C09 (visible=['C04'])"} 03:29:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:29:38.631430+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:29:51.920954+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:29:51.923708+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-07-10T18:29:51.947193+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: retry 후에도 위반 {'L13'} — 강제 제거"} {"timestamp": "2026-07-10T18:29:51.947465+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S13 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:29:51.947729+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C04 (visible=['C06'])"} {"timestamp": "2026-07-10T18:29:51.958283+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C10 (visible=[])"} 03:29:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:29:51.967039+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:01.151167+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:01.154815+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:30:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:30:01.190686+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:30:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:01.948456+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:01.950908+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-07-10T18:30:01.971992+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 14: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-07-10T18:30:01.972205+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S14 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:30:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:01.990229+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:04.484187+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:04.487031+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-07-10T18:30:04.511733+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S15 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:30:04.511970+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S15 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:30:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:04.530539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59622 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:30:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:07.250894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:30:07.253357+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:30:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:07.276385+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:13.106641+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:13.109624+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-07-10T18:30:13.135329+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S16 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:30:13.135748+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C09 (visible=['C04'])"} 03:30:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:30:13.147158+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:30:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:20.615172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:30:20.617823+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:30:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:20.641489+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:24.131433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:24.135208+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:30:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:24.173874+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:24.227454+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:24.228272+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-07-10T18:30:24.236449+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C10 (visible=[])"} 03:30:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:30:24.242054+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:30:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:32.771676+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:32.774692+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-07-10T18:30:32.794831+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S19 shot7 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:30:32.795129+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S19 shot7 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:30:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:30:32.808102+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:30:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:34.188260+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:30:34.190758+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:30:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:30:34.206891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59640 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:30:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:37.198225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:30:37.200939+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:30:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:37.224635+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:41.933858+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:30:41.936400+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:30:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:30:41.949512+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:30:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:43.745646+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:43.747320+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-07-10T18:30:43.769485+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 19: 제거할 ID: L11 — retry"} 03:30:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:43.772525+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:51.778826+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:30:51.780486+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:30:51.787307+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S17_Shot1: owned redraw repair 성공 — 1 redraw_violation 해소"} 03:30:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:51.805516+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:56.799639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:56.801890+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-07-10T18:30:56.822225+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S20 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:30:56.823004+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S20 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:30:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:56.835567+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:56.836410+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-07-10T18:30:56.848090+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 18: 제거할 ID: L04 — retry"} 03:30:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:30:56.849773+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:30:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:56.850966+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:30:59.304424+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:30:59.305743+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-07-10T18:30:59.330175+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 20: 제거할 ID: L16 — retry"} 03:30:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:30:59.332613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:04.115946+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:31:04.118303+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:31:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:31:04.141896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59657 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:31:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:13.859130+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:31:13.860307+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-07-10T18:31:13.870737+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 19: retry 후에도 위반 {'L00'} — 강제 제거"} 03:31:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:31:13.883047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:18.078952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:31:18.081238+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-07-10T18:31:18.101455+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: 제거할 ID: L15 — retry"} 03:31:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:31:18.103528+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:24.903441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:31:24.906076+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-07-10T18:31:24.930175+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 20: retry 후에도 위반 {'L01'} — 강제 제거"} 03:31:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:31:24.948222+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:29.529608+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:31:29.532388+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:31:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:31:29.567566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59692 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:31:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:41.858790+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:31:41.861538+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:31:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:31:41.904157+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:45.666283+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:31:45.668886+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:31:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:31:45.702830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:31:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:47.581859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:31:47.583371+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-07-10T18:31:47.598462+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-07-10T18:31:47.598696+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S21 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:31:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:31:47.614340+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:50.794295+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:31:50.796611+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:31:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:31:50.819918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:52.697704+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:31:52.700194+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:31:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:31:52.725277+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:31:55.211859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:31:55.214626+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:31:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:31:55.251342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:32:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:02.363696+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:02.366521+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:32:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:02.407228+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:32:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:03.366106+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:03.367615+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-07-10T18:32:03.371532+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 1 failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying sanitized input"} 03:32:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:03.385841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59708 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:32:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:10.616651+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:32:10.619150+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:32:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:32:10.633282+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:32:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:16.938579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:16.941345+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-07-10T18:32:16.964182+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 24: 제거할 ID: L01 — retry"} 03:32:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:16.966797+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:32:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:18.346518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:18.347634+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-07-10T18:32:18.360499+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 23: 제거할 ID: L01 — retry"} 03:32:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:18.362343+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:32:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:19.964755+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:19.967034+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-07-10T18:32:19.987947+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S25 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:32:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:32:19.999606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:32:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:20.259376+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:32:20.261627+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:32:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:32:20.275586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:32:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:28.716827+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:28.719486+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-07-10T18:32:28.742336+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 25: 제거할 ID: L06 — retry"} 03:32:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:28.744831+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:32:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:28.917659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:32:28.920137+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:32:28.929580+00:00", "level": "WARNING", "logger": "app.core.visible_entities_validator", "message": "validate_visible_entities_contract audit: S22_Shot1 entity_canon.name='수리영' base=C06 — no specific ID (candidates=['C06', 'C06O06']) within ±60 window (Source 2 downgraded to audit, see W20F2)."} {"timestamp": "2026-07-10T18:32:28.929743+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S22_Shot1: owned redraw repair 성공 — 1 redraw_violation 해소"} {"timestamp": "2026-07-10T18:32:28.930090+00:00", "level": "WARNING", "logger": "app.core.visible_entities_validator", "message": "validate_visible_entities_contract audit: S22_Shot1 entity_canon.name='수리영' base=C06 — no specific ID (candidates=['C06', 'C06O06']) within ±60 window (Source 2 downgraded to audit, see W20F2)."} 03:32:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:28.945047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:32:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:29.711852+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:29.714499+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:32:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:29.719750+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 1 failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying sanitized input"} {"timestamp": "2026-07-10T18:32:29.727881+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:32:29.733448+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:32:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:29.751288+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:32:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:29.754996+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59730 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:32:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:39.358874+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:39.360669+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-07-10T18:32:39.380381+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 24: retry 후에도 위반 {'L02'} — 강제 제거"} {"timestamp": "2026-07-10T18:32:39.380647+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S24 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:32:39.390377+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C06 (visible=['C13'])"} 03:32:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:39.396938+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:32:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:51.157047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:51.159759+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-07-10T18:32:51.180412+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 25: 제거할 ID: L06 — retry"} 03:32:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:51.183146+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:32:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:32:59.123080+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:32:59.125000+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-07-10T18:32:59.143112+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 25: retry 후에도 위반 {'L01'} — 강제 제거"} 03:32:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:32:59.160183+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59741 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:33:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:05.279145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:05.280719+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:33:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:05.317665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:07.999544+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:08.002257+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:33:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:08.044722+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:17.030617+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:17.033532+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-07-10T18:33:17.055441+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 25: retry 후에도 위반 {'L01'} — 강제 제거"} 03:33:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:17.073868+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:21.800779+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:21.802551+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-07-10T18:33:21.823056+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 26: 제거할 ID: L01 — retry"} 03:33:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:21.826151+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:27.201473+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:27.204117+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-07-10T18:33:27.226858+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 27: 제거할 ID: L01 — retry"} 03:33:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:27.229685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:28.817370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:28.819304+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-07-10T18:33:28.841245+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 28: 제거할 ID: L01 — retry"} 03:33:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:28.843651+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:31.833248+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:31.834867+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-07-10T18:33:31.857696+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot11 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:33:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:31.876521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:32.727375+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:32.729901+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-07-10T18:33:32.733287+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 1 failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying sanitized input"} 03:33:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:32.747339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:33.631762+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:33.633929+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-07-10T18:33:33.637095+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 2 sanitized failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying GPT fallback"} 03:33:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:33:33.640656+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59759 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:33:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:44.736887+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:44.739532+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-07-10T18:33:44.760802+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S28 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:33:44.760991+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S28 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:33:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:33:44.771652+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:33:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:52.685522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:33:52.688053+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:33:52.699451+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C06 (visible=['C13'])"} 03:33:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:52.713779+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:55.803780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:55.805404+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-07-10T18:33:55.829062+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 28: retry 후에도 위반 {'L02'} — 강제 제거"} 03:33:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:55.849860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:56.729709+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:56.732201+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-07-10T18:33:56.754305+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 27: retry 후에도 위반 {'L02'} — 강제 제거"} 03:33:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:56.771422+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:33:58.984730+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:33:58.987362+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-07-10T18:33:59.010891+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 26: retry 후에도 위반 {'L02'} — 강제 제거"} {"timestamp": "2026-07-10T18:33:59.011179+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:33:59.011460+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C06 (visible=['C13'])"} 03:33:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:33:59.031969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:59777 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:34:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:18.333927+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:34:18.335496+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:34:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:34:18.369468+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:34:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:20.385846+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:34:20.388555+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-07-10T18:34:20.411951+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S30 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:34:20.412130+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S30 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:34:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:34:20.424624+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:34:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:21.601503+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:34:21.604224+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-07-10T18:34:21.627423+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:34:21.627857+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:34:21.628284+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C06 (visible=['C13'])"} 03:34:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:34:21.641048+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:34:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:24.223162+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:34:24.225817+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:34:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:34:24.263130+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:34:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:26.357578+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:34:26.359693+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:34:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:26.463379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:34:26.465555+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-07-10T18:34:26.489671+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-10T18:34:26.489907+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:34:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:34:26.501813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:34:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:29.365893+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:34:29.368485+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:34:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:29.668223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:34:29.670667+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:34:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:30.069929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:34:30.071627+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 03:34:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:32.814967+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:34:32.816629+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:34:32.829631+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 40 shots mapped from 24 backgrounds"} {"timestamp": "2026-07-10T18:34:32.831689+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 57 shot_staging entries loaded"} {"timestamp": "2026-07-10T18:34:32.840341+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 57 shot_staging entries loaded"} {"timestamp": "2026-07-10T18:34:32.841624+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 scenes with fixed elements loaded"} {"timestamp": "2026-07-10T18:34:32.855014+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 40 shots mapped from 24 backgrounds"} {"timestamp": "2026-07-10T18:34:32.856883+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 40 shots mapped to bg_id from 24 backgrounds"} {"timestamp": "2026-07-10T18:34:32.866152+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 7 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-07-10T18:34:32.922955+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C07 (visible=['C06'])"} {"timestamp": "2026-07-10T18:34:32.966894+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C04 (visible=['C06'])"} {"timestamp": "2026-07-10T18:34:32.986290+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C09 (visible=['C04'])"} {"timestamp": "2026-07-10T18:34:32.989611+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C10 (visible=[])"} {"timestamp": "2026-07-10T18:34:33.047341+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C06 (visible=['C13'])"} {"timestamp": "2026-07-10T18:34:33.066741+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C06 (visible=['C13'])"} {"timestamp": "2026-07-10T18:34:33.107244+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail completed (completed=57/57, failed=0)"} {"timestamp": "2026-07-10T18:34:33.135758+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:34:33.191421+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T18:34:33.202727+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T18:34:33.213169+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:34:33.220698+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 21 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T18:34:33.228859+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T18:34:33.230063+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=scene_detail, repaired=0)"} INFO: 127.0.0.1:59795 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59795 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:34:35.176227+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:shot_dependency_t2i (Step shot_dependency_t2i for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59795 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/shot_dependency_t2i?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:34:35.185194+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i started (run_id=d5165fc5-7a45-4c5c-9cc6-dce88452bfad, model=gpt-mini)"} 03:34:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:34:35.210440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:34:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:34:44.068151+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:34:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:34:44.070279+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:34:44.083708+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L01 (2 shots) — LLM OK"} 03:34:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:34:44.086516+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:35:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:35:03.816220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:35:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:35:03.817781+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:35:03.835076+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L02 (3 shots) — LLM OK"} 03:35:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:35:03.838592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59806 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:35:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:35:23.553346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:35:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:35:23.555896+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:35:23.572000+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L03 (5 shots) — LLM OK"} 03:35:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:35:23.574647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59816 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:35:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:35:43.227428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:35:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:35:43.230007+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:35:43.247321+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L04 (6 shots) — LLM OK"} 03:35:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:35:43.249894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:35:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:35:51.695600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:35:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:35:51.698096+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:35:51.712317+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L07 (2 shots) — LLM OK"} 03:35:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:35:51.714880+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59827 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:36:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:36:05.533200+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:36:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:36:05.535737+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:36:05.551172+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L09 (2 shots) — LLM OK"} 03:36:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:36:05.553805+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:36:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:36:17.513588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:36:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:36:17.516072+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:36:17.529993+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L12 (2 shots) — LLM OK"} 03:36:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:36:17.532858+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59837 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:36:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:36:35.855379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:36:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:36:35.858111+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:36:35.874108+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L13 (4 shots) — LLM OK"} 03:36:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:36:35.877059+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:36:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:36:50.214543+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:36:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:36:50.217036+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:36:50.231581+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L05 (2 shots) — LLM OK"} 03:36:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:36:50.234101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:37:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:37:04.250432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:37:04.254028+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:37:04.267110+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L14 (2 shots) — LLM OK"} 03:37:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:37:04.269841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59849 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:37:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:37:18.975132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:37:18.979881+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:37:18.994424+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L15 (5 shots) — LLM OK"} 03:37:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:37:18.997374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:37:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:37:28.740738+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:37:28.743329+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:37:28.760006+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L11 (2 shots) — LLM OK"} 03:37:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:37:28.762634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59863 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:37:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:37:39.399698+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:37:39.402354+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:37:39.417533+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L16 (2 shots) — LLM OK"} 03:37:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:37:39.420179+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:37:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:37:48.908889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:37:48.911431+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:37:48.927090+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L18 (2 shots) — LLM OK"} 03:37:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:37:48.929712+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:37:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:37:59.675458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:37:59.678037+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:37:59.694757+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L06 (4 shots) — LLM OK"} 03:37:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:37:59.697335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59874 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:38:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:38:11.937290+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:38:11.939837+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:38:11.955811+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L19 (3 shots) — LLM OK"} 03:38:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:38:11.958420+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:38:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:38:24.351954+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:38:24.354616+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:38:24.370718+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L20 (2 shots) — LLM OK"} 03:38:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:38:24.373352+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 03:38:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:38:35.124995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:38:35.127563+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:38:35.143042+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L21 (3 shots) — LLM OK"} 03:38:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T18:38:35.146483+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:59886 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:38:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:38:44.776812+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T18:38:44.778387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:38:44.789576+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L22 (2 shots) — LLM OK"} {"timestamp": "2026-07-10T18:38:44.792365+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: 25/57 linked (LLM-based)"} {"timestamp": "2026-07-10T18:38:44.810314+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i completed (completed=57/57, failed=0)"} {"timestamp": "2026-07-10T18:38:44.845465+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:38:44.902153+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T18:38:44.917771+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T18:38:44.930010+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:38:44.939802+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T18:38:44.944326+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['t2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T18:38:44.945825+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=shot_dependency_t2i, repaired=0)"} INFO: 127.0.0.1:59901 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59901 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:39:05.611753+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:t2i_review (Step t2i_review for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59901 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/t2i_review?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:39:05.626448+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review started (run_id=022afd8f-7dc6-4782-95f2-c47fce43569b, model=gpt)"} 03:39:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:39:05.656968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59914 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:39:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:39:52.300598+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:39:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:39:52.303576+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:39:52.315169+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L05 [awkward_translation]: '스탠드 조명'을 직역한 'stand light'는 영어에서 조명 기구를 가리키는 표현으로 어색합니다. 원문의 의미에 맞는 자연스러운 영어 조명"} {"timestamp": "2026-07-10T18:39:52.315497+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L03 [proper_noun_translated]: 원문의 고유 지명 '인천'이 일반적인 영문 위치 설명으로 대체되어 장소의 고유성이 손실되었습니다. 재생성 시 고유명사 '인천'을 원어 표기로 유"} {"timestamp": "2026-07-10T18:39:52.315619+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L03 [awkward_translation]: 원문의 '평상'을 'wooden pallet bed'로 옮겨 한국식 평상과 운송용 팔레트 침대의 의미가 혼동됩니다. 평상의 형태와 용도를 자연스"} {"timestamp": "2026-07-10T18:39:52.315700+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L16 [awkward_translation]: 원문의 '폐쇄적인'을 'closed retail management and security office'로 옮겨 사무실이 폐쇄 영업 상태라는 의"} {"timestamp": "2026-07-10T18:39:52.315762+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P02 [awkward_translation]: '둥근 구조물'을 설명하면서 'like a cross'를 덧붙여 원형과 십자가형이 충돌하는 어색한 표현이 되었습니다. 원문에 명시된 둥근 지붕 "} {"timestamp": "2026-07-10T18:39:52.315814+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P03 [awkward_translation]: 'paper marine maps'와 'sea sectors'는 해상 지형과 좌표가 표시된 지도를 설명하는 영어로 다소 어색합니다. 원문의 해도"} 03:39:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:39:52.320807+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59924 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:40:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:40:14.103684+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:40:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:40:14.106291+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:40:14.120273+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 1/6: 10 items, 1 issues"} 03:40:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:40:14.123248+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:40:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:40:29.416590+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:40:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:40:29.418271+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:40:29.429666+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 2/6: 10 items, 1 issues"} 03:40:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:40:29.433190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59935 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:40:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:40:51.719443+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:40:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:40:51.721714+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:40:51.737099+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 3/6: 10 items, 0 issues"} 03:40:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:40:51.739764+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:41:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:41:05.387722+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:41:05.391016+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:41:05.403802+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 4/6: 10 items, 0 issues"} 03:41:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:41:05.406575+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59947 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59956 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:41:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:41:38.574711+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:41:38.576784+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:41:38.589346+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 5/6: 10 items, 3 issues"} 03:41:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:41:38.592152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:41:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:41:50.892262+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:41:50.894811+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:41:50.909041+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 6/6: 7 items, 0 issues"} {"timestamp": "2026-07-10T18:41:50.909449+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review v1: entity 6 diagnostics, scene 5 diagnostics (mutation=0)"} {"timestamp": "2026-07-10T18:41:50.927370+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T18:41:50.982035+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:41:51.056481+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T18:41:51.078398+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T18:41:51.090157+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:41:51.100822+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T18:41:51.105212+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T18:41:51.106508+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=t2i_review, repaired=0)"} INFO: 127.0.0.1:59966 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59966 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:42:05.893905+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:zoom_continuity_anchor (Step zoom_continuity_anchor for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:59966 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/zoom_continuity_anchor?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:42:05.904130+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor started (run_id=fba8ba68-2dcf-407a-9c03-57e0f9b3ed56, model=gpt)"} 03:42:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:42:05.928758+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59982 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:42:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:42:48.363116+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:42:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:42:48.365808+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:42:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:42:48.379651+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:42:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:42:54.697653+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:42:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:42:54.700277+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:42:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:42:54.711199+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:42:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:42:58.477376+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:42:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:42:58.479887+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:42:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:42:58.490655+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:59996 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:43:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:43:21.668043+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:43:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:43:21.670593+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:43:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:43:21.684693+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:43:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:43:27.884775+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:43:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:43:27.887302+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:43:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:43:27.898411+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:43:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:43:35.084481+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:43:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:43:35.087059+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:43:35.113680+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor completed (completed=2/2, failed=0)"} {"timestamp": "2026-07-10T18:43:35.173639+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:43:35.244900+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T18:43:35.262278+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T18:43:35.278206+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:43:35.286309+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T18:43:35.289755+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T18:43:35.290926+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=zoom_continuity_anchor, repaired=0)"} INFO: 127.0.0.1:60006 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60006 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:43:36.046275+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:outdoor_site_layout (Step outdoor_site_layout for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:60006 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/outdoor_site_layout?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:43:36.097940+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:43:36.157897+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T18:43:36.178540+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T18:43:36.192355+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:43:36.201849+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T18:43:36.206313+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-10T18:43:36.207675+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=outdoor_site_layout, repaired=0)"} INFO: 127.0.0.1:60023 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60023 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:44:06.099729+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:outdoor_place_spec (Step outdoor_place_spec for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:60023 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/outdoor_place_spec?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:44:06.106045+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec started (run_id=5d4cbcb8-2e1b-4905-b8fb-acf5628a6f66, model=gpt)"} 03:44:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:44:06.109411+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:44:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:44:23.104713+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:44:23.107294+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:44:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:44:23.131684+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60034 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:44:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:44:58.532399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:44:58.534412+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:44:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:44:58.558754+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60044 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60054 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:45:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:45:55.881764+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:45:55.884050+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:45:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:45:55.907556+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60065 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:46:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:46:26.316289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:46:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:46:26.318887+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:46:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:46:26.343491+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60076 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:46:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:46:55.500685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:46:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:46:55.502879+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:46:55.522097+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_entertainment_street 매핑 씬 없음 — skip"} 03:46:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:46:55.525606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60086 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:47:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:47:24.762564+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:47:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:47:24.766058+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:47:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:47:24.787591+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60101 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:48:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:48:03.009997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:48:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:48:03.012553+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:48:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:48:03.036290+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60112 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:48:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:48:15.314137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:48:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:48:15.316797+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:48:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:48:15.339592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60123 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:48:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:48:43.144757+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:48:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:48:43.146816+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:48:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:48:43.169389+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60142 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:49:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:49:28.169532+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:49:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:49:28.172106+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T18:49:28.205119+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec completed (completed=11/11, failed=0)"} {"timestamp": "2026-07-10T18:49:28.260644+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T18:49:28.332858+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T18:49:28.351751+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T18:49:28.366659+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T18:49:28.377221+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T18:49:28.382109+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outdoor_shot_grounding']"} {"timestamp": "2026-07-10T18:49:28.383647+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=outdoor_place_spec, repaired=0)"} INFO: 127.0.0.1:60154 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60154 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:49:36.617189+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:outdoor_place_canon (Step outdoor_place_canon for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:60154 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/outdoor_place_canon?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T18:49:36.626752+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon started (run_id=7ad934e0-a8fc-4d99-911d-0016cd0d5c03, model=gpt)"} 03:50:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:50:03.817786+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60172 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:50:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:50:20.464725+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:50:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:50:20.477353+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:50:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:50:20.496506+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60183 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:50:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:50:41.680930+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:50:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:50:41.694005+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:50:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:50:41.716585+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:50:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:50:51.846635+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:50:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:50:51.857384+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:50:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:50:51.866730+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:51:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:51:00.752632+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:51:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:51:00.765040+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60195 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60208 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60218 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60233 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60243 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60256 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:54:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:54:00.583702+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60277 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:54:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:54:30.629657+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:54:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:54:30.640621+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:54:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:54:30.662829+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60289 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:54:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:54:54.601902+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:54:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:54:54.611029+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:54:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:54:54.635959+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:55:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:55:02.898363+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:55:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:55:02.911649+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:55:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:55:02.920332+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60300 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:55:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:55:18.556903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:55:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:55:18.570498+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60313 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60324 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60336 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60345 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60356 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60370 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60385 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:58:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:58:39.995418+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:59:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:59:03.373405+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:59:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:59:03.384022+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:59:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:59:03.404118+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60394 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:59:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:59:23.001034+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:59:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:59:23.011302+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T18:59:23.034966+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:59:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:59:33.899972+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:59:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T18:59:33.910953+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:59:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T18:59:33.919817+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60414 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 03:59:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T18:59:46.114314+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:59:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T18:59:46.126688+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60426 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60437 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60447 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60458 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60468 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60479 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:02:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:02:56.708658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60526 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:03:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:03:23.632971+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:03:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:03:23.642406+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:03:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:03:23.662994+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60537 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:03:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:03:53.996584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:03:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:03:54.009565+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:03:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:03:54.037380+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60546 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:04:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:04:10.326196+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:04:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:04:10.336320+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:04:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:04:10.345355+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:04:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:04:28.759012+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:04:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:04:28.770099+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60564 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60576 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60587 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60597 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60608 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60618 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:07:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:07:33.312700+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60632 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:07:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:07:48.426094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:07:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:07:48.437597+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:07:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:07:48.458386+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60647 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:08:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:08:10.499020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:08:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:08:10.510287+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:08:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:08:10.534337+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:08:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:08:16.873161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:08:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:08:16.884435+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:08:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:08:16.893111+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:08:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:08:32.435797+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:08:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:08:32.445284+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60662 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60673 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60693 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60702 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60711 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60721 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:11:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:11:38.077915+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60737 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:11:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:11:49.695457+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:11:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:11:49.703591+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:11:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:11:49.728093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:12:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:12:02.297296+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:12:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:12:02.310894+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:12:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:12:02.339245+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:12:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:12:05.617741+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:12:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:12:05.629708+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:12:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:12:05.638047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60749 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:12:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:12:13.895946+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:12:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:12:13.911116+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60760 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60773 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60782 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60792 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60812 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60822 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:15:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:15:35.660124+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60839 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:15:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:15:51.387316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:15:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:15:51.394956+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:15:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:15:51.413719+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:16:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:16:08.652876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:16:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:16:08.660080+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:16:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:16:08.680399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60849 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:16:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:16:20.004883+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:16:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:16:20.016022+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:16:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:16:20.024310+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:16:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:16:37.046543+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:16:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:16:37.056012+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60861 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60875 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60886 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60900 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60910 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60920 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:19:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:19:24.724504+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60942 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:19:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:19:48.344271+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:19:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:19:48.354605+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:19:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:19:48.376608+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:60953 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:20:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:20:23.243540+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:20:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:20:23.257868+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:20:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:20:23.283666+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:60966 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:20:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:20:40.732068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:20:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:20:40.742198+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:20:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:20:40.751336+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:21:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:21:01.034318+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:21:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:21:01.046387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:60977 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60991 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61000 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61010 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61024 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61036 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:24:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:24:02.561334+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61049 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61069 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:24:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:24:57.441870+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:24:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:24:57.451907+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:24:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:24:57.473154+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:61080 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:25:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:25:28.074614+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:25:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:25:28.084233+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:25:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:25:28.108683+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61093 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:26:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:26:02.316248+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:26:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:26:02.324178+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:26:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:26:02.332645+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:61106 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61118 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:26:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:26:41.553585+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:26:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:26:41.566094+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:61131 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61141 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61155 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61166 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61175 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:29:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:29:39.548486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61201 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:29:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:29:59.079693+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:29:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:29:59.091567+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:29:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:29:59.112234+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:61211 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:30:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:30:17.940486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:30:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:30:17.952311+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:30:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:30:17.977872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:30:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:30:33.425538+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:30:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:30:33.433907+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:30:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-10T19:30:33.441359+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:61225 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:30:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:30:56.257970+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:30:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-10T19:30:56.270492+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:61238 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61248 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61257 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61270 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61283 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:33:31.070426+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon completed (completed=10/10, failed=0)"} {"timestamp": "2026-07-10T19:33:31.124763+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:33:31.198354+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:33:31.220023+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:33:31.238780+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:33:31.249444+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:33:31.254318+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 22dfb539-6062-42a0-9279-ab9dce6e5f11 status NOT advanced — incomplete steps: ['outdoor_shot_grounding']"} {"timestamp": "2026-07-10T19:33:31.255842+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=outdoor_place_canon, repaired=0)"} INFO: 127.0.0.1:61330 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61330 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:33:40.322089+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:outdoor_shot_grounding (Step outdoor_shot_grounding for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:61330 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/outdoor_shot_grounding?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:33:40.342564+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_shot_grounding started (run_id=8b9be1f4-2659-4668-9e46-d0e884f37484, model=gpt)"} 04:33:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:33:40.357521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:33:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:33:55.642712+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:33:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:33:55.649858+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:33:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:33:55.664102+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:34:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:34:10.241807+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:34:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:34:10.253728+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:34:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:34:10.268842+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61342 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:34:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:34:28.188667+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:34:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:34:28.200913+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:34:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:34:28.214884+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61362 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:34:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:34:51.793676+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:34:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:34:51.805908+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:34:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:34:51.820118+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:35:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:35:05.127740+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:35:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:35:05.136023+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:35:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:35:05.152384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61371 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:35:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:35:20.141169+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:35:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:35:20.151333+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:35:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:35:20.165685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:35:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:35:37.562415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:35:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:35:37.575681+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:35:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:35:37.593457+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61385 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:35:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:35:55.969801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:35:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:35:55.981906+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:35:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:35:55.996700+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61395 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:36:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:36:11.507147+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:36:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:36:11.515139+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:36:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:36:11.527241+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:36:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:36:23.626120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:36:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:36:23.633993+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:36:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:36:23.648392+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:36:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:36:37.238041+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:36:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:36:37.250743+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:36:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:36:37.267063+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61410 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:36:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:36:57.799498+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:36:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:36:57.811702+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:36:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:36:57.827445+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61419 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:37:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:37:10.813091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:37:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:37:10.825082+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:37:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:37:10.840366+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:37:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:37:22.760052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:37:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:37:22.773583+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:37:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:37:22.790008+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:37:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:37:37.224747+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:37:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:37:37.235009+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:37:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:37:37.248715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61430 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:37:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:37:47.339953+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:37:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:37:47.352664+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:37:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:37:47.373969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:38:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:38:02.627781+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:38:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:38:02.634597+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:38:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:38:02.650320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61443 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:38:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:38:16.501723+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:38:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:38:16.511217+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:38:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:38:16.527861+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:38:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:38:26.336080+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:38:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:38:26.346022+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:38:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:38:26.360703+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61456 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:38:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:38:47.322137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:38:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:38:47.332783+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:38:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:38:47.347127+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:39:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:39:10.724880+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:39:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:39:10.733136+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:39:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:39:10.748685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61465 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:39:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:39:22.495346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:39:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:39:22.504716+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:39:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:39:22.518683+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:39:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:39:37.679902+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:39:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:39:37.690661+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:39:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:39:37.704933+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61489 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:40:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:40:00.720254+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:40:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:40:00.730501+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:40:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:40:00.744966+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:40:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:40:07.586345+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:40:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:40:07.597519+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:40:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:40:07.612230+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61497 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:40:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:40:39.021162+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:40:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:40:39.033161+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:40:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:40:39.047094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61509 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:40:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:40:51.568459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:40:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:40:51.579430+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:40:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:40:51.594211+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61519 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:41:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:41:19.937369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:41:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:41:19.947591+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:41:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:41:19.964000+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:41:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:41:27.050638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:41:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:41:27.060316+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:41:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:41:27.074342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:41:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:41:34.405788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:41:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:41:34.417610+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:41:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:41:34.432636+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61536 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:41:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:41:50.179549+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:41:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:41:50.191870+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:41:50.213682+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_shot_grounding completed (completed=31/31, failed=0)"} {"timestamp": "2026-07-10T19:41:50.271355+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:41:50.342608+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:41:50.363473+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:41:50.380365+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:41:50.390670+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:41:50.397344+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=outdoor_shot_grounding, repaired=0)"} INFO: 127.0.0.1:61544 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61544 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:42:11.184800+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:world_guide (Step world_guide for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:61544 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/world_guide?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:42:11.196381+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide started (run_id=2afeb34e-8126-4890-b344-05b06656f79c, model=gpt)"} 04:42:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:42:11.226968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61556 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61569 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61580 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61588 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61607 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61616 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61628 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:45:58 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.BadGatewayError: BadGatewayError: OpenAIException - Error code: 502 - {'type': 'https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-502/', 'title': 'Error 502: Bad gateway', 'status': 502, 'detail': 'The origin web server returned an invalid or incomplete response to Cloudflare. This typically indicates the origin is overloaded or misconfigured.', 'instance': 'a1920cd96ec4eab1', 'error_code': 502, 'error_name': 'origin_bad_gateway', 'error_category': 'origin', 'ray_id': 'a1920cd96ec4eab1', 'timestamp': '2026-07-10T19:45:58Z', 'zone': 'api.openai.com', 'cloudflare_error': True, 'retryable': True, 'retry_after': 60, 'owner_action_required': True, 'what_you_should_do': '**Wait and retry.** Back off for at least 60 seconds. If the error persists, the website operator should check their origin server health and configuration.', 'footer': 'This error was generated by Cloudflare on behalf of the website owner.'} {"timestamp": "2026-07-10T19:45:58.535237+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.BadGatewayError: BadGatewayError: OpenAIException - Error code: 502 - {'type': 'https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-502/', 'title': 'Error 502: Bad gateway', 'status': 502, 'detail': 'The origin web server returned an invalid or incomplete response to Cloudflare. This typically indicates the origin is overloaded or misconfigured.', 'instance': 'a1920cd96ec4eab1', 'error_code': 502, 'error_name': 'origin_bad_gateway', 'error_category': 'origin', 'ray_id': 'a1920cd96ec4eab1', 'timestamp': '2026-07-10T19:45:58Z', 'zone': 'api.openai.com', 'cloudflare_error': True, 'retryable': True, 'retry_after': 60, 'owner_action_required': True, 'what_you_should_do': '**Wait and retry.** Back off for at least 60 seconds. If the error persists, the website operator should check their origin server health and configuration.', 'footer': 'This error was generated by Cloudflare on behalf of the website owner.'}\u001b[0m"} INFO: 127.0.0.1:61637 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61650 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:46:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:46:58.817402+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61660 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61672 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61684 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:48:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:48:16.320417+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:48:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:48:16.323224+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:48:16.359521+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T19:48:16.418449+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:48:16.488268+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:48:16.507726+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:48:16.530236+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:48:16.544668+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:48:16.551935+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=world_guide, repaired=0)"} INFO: 127.0.0.1:61696 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61696 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:48:41.872377+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:space_set_bg (Step space_set_bg for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:61696 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/space_set_bg?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:48:41.939554+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:48:42.011519+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:48:42.032796+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:48:42.046866+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:48:42.057171+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:48:42.063675+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=space_set_bg, repaired=0)"} INFO: 127.0.0.1:61707 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61707 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:49:11.929648+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:ref_image_gen (Step ref_image_gen for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:61707 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/ref_image_gen?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:49:11.934414+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen started (run_id=ee3282de-adbb-4f47-8328-1cb3aa404626, model=gemini-image)"} {"timestamp": "2026-07-10T19:49:11.962775+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:49:11.994860+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:49:12.010008+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:49:12.022277+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:49:12.032686+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:49:12.037081+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=-, repaired=0)"} 04:49:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:49:12.068987+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61728 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61737 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61748 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:50:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:44.794479+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:44.797080+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:50:44.854863+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민숙 (변형 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855024+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 로트와일러 (character, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855087+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 검은 형상 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:50:44.855130+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 혜수 (character, t2i_count=7, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855171+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 김형사 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:50:44.855204+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민숙 (character, t2i_count=4, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855236+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 굵은 닻줄 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:50:44.855266+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 잔혹한 시신 사진 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:50:44.855301+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 스마트폰 (prop, t2i_count=3, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855333+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 낡은 흑백 사진 (prop, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855363+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 낯선 남자 (character, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855394+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 한국인 남자 (character, t2i_count=4, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855425+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-07-10T19:50:44.855456+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 석창포 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:50:44.855488+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 액자 사진 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855518+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 수리영 (character, t2i_count=29, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855548+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 종이 지도 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:50:44.855578+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-07-10T19:50:44.876577+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 여자 (type=character)"} {"timestamp": "2026-07-10T19:50:44.876906+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 수리영 (type=character)"} {"timestamp": "2026-07-10T19:50:44.877126+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 종이 지도 (type=prop)"} {"timestamp": "2026-07-10T19:50:44.877417+00:00", "level": "INFO", "logger": "app.services.reference_phase1_service", "message": "visual_continuity_anchor: prop P02 ref prompt overlay 적용 (canon 비변경)"} {"timestamp": "2026-07-10T19:50:44.877580+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (type=character)"} {"timestamp": "2026-07-10T19:50:44.878211+00:00", "level": "INFO", "logger": "app.services.reference_phase1_service", "message": "visual_continuity_anchor: prop P01 ref prompt overlay 적용 (canon 비변경)"} {"timestamp": "2026-07-10T19:50:44.878472+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 로트와일러 (type=character_nonhuman)"} {"timestamp": "2026-07-10T19:50:44.878778+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 낡은 흑백 사진 (type=prop)"} {"timestamp": "2026-07-10T19:50:44.879577+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 남자 (type=character)"} {"timestamp": "2026-07-10T19:50:44.879747+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 액자 사진 (type=prop)"} {"timestamp": "2026-07-10T19:50:44.879884+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 스마트폰 (type=prop)"} {"timestamp": "2026-07-10T19:50:44.880006+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 낯선 남자 (type=character)"} {"timestamp": "2026-07-10T19:50:44.880213+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 인우 (type=character)"} {"timestamp": "2026-07-10T19:50:44.880677+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 혜수 (type=character)"} {"timestamp": "2026-07-10T19:50:44.880861+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 수리영 (character)"} {"timestamp": "2026-07-10T19:50:44.881227+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 한국인 여자 (character)"} {"timestamp": "2026-07-10T19:50:44.881664+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 종이 지도 (prop)"} {"timestamp": "2026-07-10T19:50:44.882104+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민숙 (character)"} {"timestamp": "2026-07-10T19:50:44.882374+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 로트와일러 (character_nonhuman)"} {"timestamp": "2026-07-10T19:50:44.882712+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 낡은 흑백 사진 (prop)"} {"timestamp": "2026-07-10T19:50:44.882960+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 한국인 남자 (character)"} {"timestamp": "2026-07-10T19:50:44.883068+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 액자 사진 (prop)"} {"timestamp": "2026-07-10T19:50:44.883179+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 낯선 남자 (character)"} {"timestamp": "2026-07-10T19:50:44.883317+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 스마트폰 (prop)"} {"timestamp": "2026-07-10T19:50:44.883438+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 인우 (character)"} {"timestamp": "2026-07-10T19:50:44.883538+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 혜수 (character)"} {"timestamp": "2026-07-10T19:50:51.706046+00:00", "level": "WARNING", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Reference T2I blocked (attempt 1) for 낡은 흑백 사진: SAFETY"} 04:50:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:51.715403+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:51.840118+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:51.924264+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:51.932273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:52.352599+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:53.093788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:53.331730+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:53.747792+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:53.753703+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:50:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:54.352990+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:54.360036+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:54.833553+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:55.299233+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:50:55.383337+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:50:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:55.773486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:55.782572+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:50:55.783775+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 낯선 남자 — regenerating"} 04:50:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:57.828201+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:57.834758+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:50:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:59.157384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:59.165632+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:50:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:59.231458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:59.240333+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:50:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:59.296947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:59.306349+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:50:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:59.700950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:59.706515+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:50:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:59.756752+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:50:59.762859+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:50:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:50:59.995397+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:51:00.002612+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:51:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:51:00.747536+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:51:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:51:00.756660+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:51:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:51:01.618829+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:51:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:51:01.627019+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 04:51:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:51:03.085279+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:51:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:51:09.191011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:51:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:51:09.201649+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:51:09.204046+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 낯선 남자: winner=image_2 reason=두 이미지 모두 얼굴과 머리 모양이 선명하게 드러나 설명과 크게 어긋납니다. 그중 image_2는 성인 남성이라는 인상이 더 분명해 해당 요소에는 상대적으로 조금 더 가깝습니다."} 04:51:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:51:11.296023+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:51:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:51:11.298559+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:51:11.304451+00:00", "level": "INFO", "logger": "app.modules.prompt_sanitizer", "message": "Prompt sanitized: attempt=1, strategy=film_previs, semantic_mode=none, changes=사진 표면의 혈흔을 비생물학적인 습기 자국과 세월에 따른 갈색 변색으로 대체했습니다. 두 아동은 위험 요소 없이 식당 앞에 안전하게 앉아 있는 모습으로 한정했으며, 실사 품질을 위"} {"timestamp": "2026-07-10T19:51:11.304684+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Sanitized prompt for 낡은 흑백 사진 (strategy: film_previs): This is a pre-visualization concept art for a film production. Storyboard-qualit"} INFO: 127.0.0.1:61784 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:51:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:51:20.012742+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:51:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:51:29.649597+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:51:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:51:29.654929+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:51:29.690598+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (변형 상태) (type=character)"} {"timestamp": "2026-07-10T19:51:29.691632+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민숙 (변형 상태) (character)"} 04:51:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:51:41.004137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:61804 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:51:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:51:49.333578+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:51:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:51:49.341208+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:51:49.397097+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen completed (completed=18/50, failed=0)"} {"timestamp": "2026-07-10T19:51:49.457296+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:51:49.520859+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:51:49.538189+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:51:49.557654+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:51:49.570982+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:51:49.577431+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=ref_image_gen, repaired=0)"} INFO: 127.0.0.1:61812 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61812 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:52:12.238605+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:composite_image_gen (Step composite_image_gen for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:61812 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/composite_image_gen?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:52:12.250719+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen started (run_id=27367366-4532-4ddd-9f0f-5fff1f9db2e2, model=gemini-image)"} {"timestamp": "2026-07-10T19:52:12.298740+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:52:12.363729+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:52:12.381739+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:52:12.394449+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:52:12.404875+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:52:12.410445+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=-, repaired=0)"} {"timestamp": "2026-07-10T19:52:12.472251+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: reference — 13 completed, 0 failed"} {"timestamp": "2026-07-10T19:52:12.485510+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 굵은 닻줄 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:52:12.485590+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 김형사 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:52:12.485629+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 잔혹한 시신 사진 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:52:12.485662+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민숙 (변형 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485691+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 로트와일러 (character, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485721+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 검은 형상 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:52:12.485752+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 혜수 (character, t2i_count=7, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485778+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민숙 (character, t2i_count=4, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485805+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 스마트폰 (prop, t2i_count=3, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485835+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 낡은 흑백 사진 (prop, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485861+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 낯선 남자 (character, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485886+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 한국인 남자 (character, t2i_count=4, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485909+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-07-10T19:52:12.485934+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 석창포 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-10T19:52:12.485958+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 액자 사진 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.485983+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 수리영 (character, t2i_count=29, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.486007+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 종이 지도 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-10T19:52:12.486032+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-07-10T19:52:12.503306+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Generating 8 standalone outfit images (parallel)"} 04:52:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T19:52:12.506085+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:52:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:17.082404+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T19:52:17.085059+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:52:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T19:52:17.098114+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:52:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:21.151269+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T19:52:21.153853+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:52:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T19:52:21.165898+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:52:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:25.108121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T19:52:25.110171+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:52:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T19:52:25.119927+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:52:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:29.471462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T19:52:29.473954+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:52:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T19:52:29.486639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:52:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:34.077911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T19:52:34.080291+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:52:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T19:52:34.091061+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:52:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:38.118202+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T19:52:38.120633+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:52:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T19:52:38.131279+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:61829 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:52:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:43.348888+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T19:52:43.351436+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:52:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T19:52:43.364440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:52:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:47.992918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T19:52:47.995047+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:52:48.006906+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 낡은검은점퍼1 (type=outlook)"} {"timestamp": "2026-07-10T19:52:48.008507+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 회색홈웨어1 (type=outlook)"} {"timestamp": "2026-07-10T19:52:48.008868+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 네이비블루종1 (type=outlook)"} {"timestamp": "2026-07-10T19:52:48.009053+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 베이지트렌치코트1 (type=outlook)"} {"timestamp": "2026-07-10T19:52:48.009467+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 검은방수자켓1 (type=outlook)"} {"timestamp": "2026-07-10T19:52:48.009571+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 카키등산복1 (type=outlook)"} {"timestamp": "2026-07-10T19:52:48.010098+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 청색후드티1 (type=outlook)"} {"timestamp": "2026-07-10T19:52:48.010439+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 낡은검은점퍼1 (outlook)"} {"timestamp": "2026-07-10T19:52:48.010979+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 피묻은홈웨어1 (type=outlook)"} {"timestamp": "2026-07-10T19:52:48.011135+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 회색홈웨어1 (outlook)"} {"timestamp": "2026-07-10T19:52:48.011490+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 베이지트렌치코트1 (outlook)"} {"timestamp": "2026-07-10T19:52:48.011918+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 네이비블루종1 (outlook)"} {"timestamp": "2026-07-10T19:52:48.012245+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 검은방수자켓1 (outlook)"} {"timestamp": "2026-07-10T19:52:48.012430+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 카키등산복1 (outlook)"} {"timestamp": "2026-07-10T19:52:48.012605+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 청색후드티1 (outlook)"} {"timestamp": "2026-07-10T19:52:48.012805+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 피묻은홈웨어1 (outlook)"} 04:52:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:52:55.471380+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:52:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:52:56.148814+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:52:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:52:56.393175+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:52:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:52:56.732698+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:52:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:52:56.998713+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:52:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:52:57.391500+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:52:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:52:57.561682+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:52:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:52:58.543527+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:52:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:58.634780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:52:58.635054+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:52:58.639690+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 청색후드티1"} 04:52:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:59.282839+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:52:59.289969+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:52:59.297942+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 네이비블루종1"} 04:52:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:59.840110+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:52:59.846994+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:52:59.855793+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 카키등산복1"} 04:52:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:59.958529+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:52:59.966695+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:52:59.973101+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 피묻은홈웨어1"} 04:52:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:52:59.988483+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:52:59.992557+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:52:59.997684+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 낡은검은점퍼1"} 04:53:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:01.535188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:01.542649+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:01.551717+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 베이지트렌치코트1"} 04:53:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:02.639817+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:02.647403+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:02.655963+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 회색홈웨어1"} 04:53:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:04.633279+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:04.640914+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:04.650431+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 검은방수자켓1"} {"timestamp": "2026-07-10T19:53:04.708211+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Generating 8 composite images (face + outfit refs)"} {"timestamp": "2026-07-10T19:53:04.711587+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (피묻은홈웨어1) (type=composite)"} {"timestamp": "2026-07-10T19:53:04.712479+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 인우 (검은방수자켓1) (type=composite)"} {"timestamp": "2026-07-10T19:53:04.713257+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 여자 (베이지트렌치코트1) (type=composite)"} {"timestamp": "2026-07-10T19:53:04.713800+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (회색홈웨어1) (type=composite)"} {"timestamp": "2026-07-10T19:53:04.714392+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 수리영 (청색후드티1) (type=composite)"} {"timestamp": "2026-07-10T19:53:04.714878+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민숙 (피묻은홈웨어1) (composite)"} {"timestamp": "2026-07-10T19:53:04.732058+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 혜수 (네이비블루종1) (type=composite)"} {"timestamp": "2026-07-10T19:53:04.732329+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 낯선 남자 (낡은검은점퍼1) (type=composite)"} {"timestamp": "2026-07-10T19:53:04.732669+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 인우 (검은방수자켓1) (composite)"} {"timestamp": "2026-07-10T19:53:04.747621+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 남자 (카키등산복1) (type=composite)"} {"timestamp": "2026-07-10T19:53:04.747926+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 한국인 여자 (베이지트렌치코트1) (composite)"} {"timestamp": "2026-07-10T19:53:04.756759+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민숙 (회색홈웨어1) (composite)"} {"timestamp": "2026-07-10T19:53:04.766227+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 수리영 (청색후드티1) (composite)"} {"timestamp": "2026-07-10T19:53:04.775766+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 혜수 (네이비블루종1) (composite)"} {"timestamp": "2026-07-10T19:53:04.785376+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 낯선 남자 (낡은검은점퍼1) (composite)"} {"timestamp": "2026-07-10T19:53:04.793330+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 한국인 남자 (카키등산복1) (composite)"} INFO: 127.0.0.1:61867 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:53:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:14.093415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:14.129707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:14.359676+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:14.630679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:14.843427+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:15.000717+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:15.443343+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:16.874629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:16.880157+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:16.889182+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 한국인 여자 + 베이지트렌치코트1"} 04:53:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:17.103065+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:17.325636+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:17.331118+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:17.338380+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 수리영 + 청색후드티1"} 04:53:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:17.371115+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:17.376947+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:17.383370+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 민숙 + 피묻은홈웨어1"} 04:53:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:17.786515+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:17.794002+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:17.802012+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 낯선 남자 + 낡은검은점퍼1"} 04:53:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:18.525857+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:18.531530+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:18.540856+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 인우 + 검은방수자켓1"} 04:53:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:18.749482+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:18.753070+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:18.758917+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 한국인 남자 + 카키등산복1"} 04:53:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:19.071619+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:19.077525+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:19.086322+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 혜수 + 네이비블루종1"} 04:53:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:22.080998+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:22.087236+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:22.089235+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 민숙 (회색홈웨어1) — regenerating"} 04:53:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:30.394979+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:36.011288+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:36.020645+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:36.023040+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 민숙 (회색홈웨어1): winner=image_2 reason=두 이미지가 거의 동일하지만, image_2에서 민숙의 회색 홈웨어 상의가 조금 더 선명하고 중심에 안정적으로 표현되어 설명과 더 잘 맞습니다."} {"timestamp": "2026-07-10T19:53:36.029267+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 민숙 + 회색홈웨어1"} {"timestamp": "2026-07-10T19:53:36.057214+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen completed (completed=8/8, failed=0)"} {"timestamp": "2026-07-10T19:53:36.085112+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:53:36.125684+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:53:36.140792+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:53:36.153324+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:53:36.160880+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:53:36.165570+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=composite_image_gen, repaired=0)"} INFO: 127.0.0.1:61893 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61893 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:53:42.382289+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:character_state_variant (Step character_state_variant for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:61893 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/character_state_variant?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:53:42.386877+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant started (run_id=6898e744-079d-4d74-bedc-4b8ce770e148, model=gemini-image)"} {"timestamp": "2026-07-10T19:53:42.387648+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 4 characters with state variants: ['한국인 남자', '한국인 여자', '민숙', '수리영']"} {"timestamp": "2026-07-10T19:53:42.409046+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 남자 (severely_injured) (type=character_state_variant)"} 04:53:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:53:50.443215+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:53:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:53:53.821778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:53:53.830829+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:53:53.839942+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 한국인 남자 (severely_injured) — generated"} {"timestamp": "2026-07-10T19:53:53.845280+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 여자 (dead) (type=character_state_variant)"} 04:54:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:54:02.553039+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:54:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:54:07.014751+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:54:07.020009+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:54:07.021808+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 한국인 여자 (dead) — regenerating"} {"timestamp": "2026-07-10T19:54:10.651177+00:00", "level": "WARNING", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Regeneration failed for 한국인 여자 (dead): Content moderation blocked: text_refusal:STOP"} {"timestamp": "2026-07-10T19:54:10.660787+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 한국인 여자 (dead) — generated"} {"timestamp": "2026-07-10T19:54:10.670116+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (dead) (type=character_state_variant)"} INFO: 127.0.0.1:61913 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK 04:54:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:54:21.853913+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:54:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:54:25.972518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:54:25.980399+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:54:25.990634+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 민숙 (dead) — generated"} {"timestamp": "2026-07-10T19:54:25.999303+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 수리영 (unconscious) (type=character_state_variant)"} 04:54:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T19:54:37.410624+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 04:54:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T19:54:41.808279+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T19:54:41.815513+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T19:54:41.825042+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 수리영 (unconscious) — generated"} {"timestamp": "2026-07-10T19:54:41.932675+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant completed (completed=4/4, failed=0)"} {"timestamp": "2026-07-10T19:54:41.993411+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T19:54:42.073165+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T19:54:42.098423+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T19:54:42.114924+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T19:54:42.128602+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T19:54:42.134841+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=character_state_variant, repaired=0)"} INFO: 127.0.0.1:61937 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61937 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:54:42.545172+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:background_render (Step background_render for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:61937 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/background_render?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:54:42.557840+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render started (run_id=c2e1ee82-7ccf-4887-8f87-d939463448de, model=gpt)"} {"timestamp": "2026-07-10T19:54:42.563321+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: W22 직행 — 야외 bg 11개 plate skip: ['L03B01', 'L03B02', 'L03B03', 'L11B01', 'L13B01', 'L13B02', 'L13B03', 'L17B01', 'L20B01', 'L22B01', 'L22B02']"} {"timestamp": "2026-07-10T19:54:42.578935+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place 그룹 멤버십 22 loc — {'L01': 'bg_forest_floor', 'L02': 'bg_urban_alley', 'L03': 'bg_rooftop_residence', 'L04': 'bg_rooftop_residence', 'L05': 'bg_rooftop_residence', 'L06': 'bg_rooftop_residence', 'L13': 'bg_rooftop_residence', 'L07': 'bg_coastal_road', 'L08': 'bg_coastal_road', 'L09': 'bg_animal_shelter_cage_area', 'L10': 'bg_entertainment_street', 'L11': 'bg_large_store', 'L12': 'bg_large_store', 'L16': 'bg_large_store', 'L14': 'bg_coastal_bus_stop', 'L15': 'bg_police_station', 'L17': 'bg_police_station', 'L18': 'bg_computer_cafe', 'L19': 'bg_foggy_harbor', 'L20': 'bg_fishing_vessel', 'L21': 'bg_fishing_vessel', 'L22': 'bg_fishing_vessel'}"} INFO: 127.0.0.1:61946 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61957 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61968 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T19:56:22.196196+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L04 anchor=L04B02"} INFO: 127.0.0.1:61982 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61991 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62002 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62015 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62024 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62034 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62054 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62064 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62075 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62083 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:01:20.050871+00:00", "level": "ERROR", "logger": "app.modules.pipeline.background_render", "message": "background_render L05B01 attempt 1/1: Error code: 400 - {'error': {'message': 'Your request was rejected by the safety system. If you believe this is an error, contact us at help.openai.com and include the request ID req_ab74a2a1f67a448da"} INFO: 127.0.0.1:62093 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62102 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62114 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:03:03.314756+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L06 anchor=L06B01"} INFO: 127.0.0.1:62128 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62142 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62181 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62199 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62210 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62223 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62233 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62243 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:06:56.835369+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L12 anchor=L12B01"} INFO: 127.0.0.1:62251 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62262 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62276 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62288 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:08:44.640917+00:00", "level": "INFO", "logger": "openai._base_client", "message": "Retrying request to /images/edits in 60.000000 seconds"} INFO: 127.0.0.1:62297 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62316 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62326 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62336 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62346 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62357 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:11:44.429239+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L16 anchor=L16B01"} INFO: 127.0.0.1:62367 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62377 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62390 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:13:30.037835+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L15 anchor=L15B03"} INFO: 127.0.0.1:62400 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:14:06.945968+00:00", "level": "INFO", "logger": "openai._base_client", "message": "Retrying request to /images/edits in 60.000000 seconds"} INFO: 127.0.0.1:62411 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62430 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62440 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62451 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62461 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62470 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62480 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62491 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62506 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:18:40.836047+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L21 anchor=L21B01"} INFO: 127.0.0.1:62517 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62526 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62545 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62556 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T20:20:28.500565+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: registered 12 ImageAssets (chain_bg + 0 location_aerial) (star anchor lineage: 6)"} {"timestamp": "2026-07-10T20:20:28.515925+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render partial (completed=12/13, failed=1)"} {"timestamp": "2026-07-10T20:20:28.569157+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T20:20:28.639276+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T20:20:28.661466+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T20:20:28.673764+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T20:20:28.683900+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T20:20:28.689220+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=background_render, repaired=0)"} INFO: 127.0.0.1:62568 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62578 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62589 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62597 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62606 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62620 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62632 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62642 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62652 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62669 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62680 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62693 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62705 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62714 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62725 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62733 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62749 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62759 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62773 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62790 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62803 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62812 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62822 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62833 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62844 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62853 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62870 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62882 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62894 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62937 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62948 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62958 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62969 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62978 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62987 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62996 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63013 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63023 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63035 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63050 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63059 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63069 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63081 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63091 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63102 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63109 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63123 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63133 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63145 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63162 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63172 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63180 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63191 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63201 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63213 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63222 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63236 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63245 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63257 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63276 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63287 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63296 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63307 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63318 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63328 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63337 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63352 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63362 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63373 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63389 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63398 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63410 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63422 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63432 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63443 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63451 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63465 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63474 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63488 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63506 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63519 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63527 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63536 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63546 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63558 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63569 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63582 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63591 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63602 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63621 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63631 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:63631 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63636 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63646 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:06:16.065947+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:8207aadc-7975-48f5-af17-ccc145a6660d:22dfb539-6062-42a0-9279-ab9dce6e5f11:background_render (Step background_render for 22dfb539-6062-42a0-9279-ab9dce6e5f11)"} INFO: 127.0.0.1:63646 - "POST /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps/background_render?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:06:16.071012+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=background_render status=running → force-like"} {"timestamp": "2026-07-10T21:06:16.071772+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render started (run_id=84c5402c-64c1-4b38-a6e0-9a2fb64611f9, model=gpt)"} {"timestamp": "2026-07-10T21:06:16.073513+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: W22 직행 — 야외 bg 11개 plate skip: ['L03B01', 'L03B02', 'L03B03', 'L11B01', 'L13B01', 'L13B02', 'L13B03', 'L17B01', 'L20B01', 'L22B01', 'L22B02']"} {"timestamp": "2026-07-10T21:06:16.079055+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place 그룹 멤버십 22 loc — {'L01': 'bg_forest_floor', 'L02': 'bg_urban_alley', 'L03': 'bg_rooftop_residence', 'L04': 'bg_rooftop_residence', 'L05': 'bg_rooftop_residence', 'L06': 'bg_rooftop_residence', 'L13': 'bg_rooftop_residence', 'L07': 'bg_coastal_road', 'L08': 'bg_coastal_road', 'L09': 'bg_animal_shelter_cage_area', 'L10': 'bg_entertainment_street', 'L11': 'bg_large_store', 'L12': 'bg_large_store', 'L16': 'bg_large_store', 'L14': 'bg_coastal_bus_stop', 'L15': 'bg_police_station', 'L17': 'bg_police_station', 'L18': 'bg_computer_cafe', 'L19': 'bg_foggy_harbor', 'L20': 'bg_fishing_vessel', 'L21': 'bg_fishing_vessel', 'L22': 'bg_fishing_vessel'}"} INFO: 127.0.0.1:63650 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63687 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63689 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63699 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63701 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63712 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63714 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:07:56.300632+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L04 anchor=L04B02"} INFO: 127.0.0.1:63723 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63726 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63739 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63743 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63752 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63754 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63768 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63770 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63788 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63790 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63799 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63802 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63810 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63814 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63824 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63827 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63837 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63839 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63849 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63851 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:13:02.477416+00:00", "level": "ERROR", "logger": "app.modules.pipeline.background_render", "message": "background_render L05B01 attempt 1/1: Error code: 400 - {'error': {'message': 'Your request was rejected by the safety system. If you believe this is an error, contact us at help.openai.com and include the request ID req_e7a66db115ba49ddb"} INFO: 127.0.0.1:63860 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63863 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63875 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63879 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63887 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63889 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:14:40.399142+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L06 anchor=L06B01"} INFO: 127.0.0.1:63900 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63902 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63920 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63922 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63932 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63934 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63942 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63946 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63954 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63956 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63966 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63968 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63979 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63981 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63992 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63994 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:18:33.174706+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L12 anchor=L12B01"} INFO: 127.0.0.1:64006 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64010 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64018 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64021 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64033 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64035 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64052 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:20:19.516692+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L16 anchor=L16B01"} INFO: 127.0.0.1:64054 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64065 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64067 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64077 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64080 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64088 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64091 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:22:10.680887+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L15 anchor=L15B03"} INFO: 127.0.0.1:64100 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64102 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64114 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64116 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64126 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64128 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64144 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64147 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64157 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64161 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64169 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64171 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64188 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64190 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:25:45.023682+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L21 anchor=L21B01"} INFO: 127.0.0.1:64202 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64204 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64216 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64219 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64228 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64232 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64241 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64243 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T21:27:27.120173+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: registered 12 ImageAssets (chain_bg + 0 location_aerial) (star anchor lineage: 6)"} {"timestamp": "2026-07-10T21:27:27.136033+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render partial (completed=12/13, failed=1)"} {"timestamp": "2026-07-10T21:27:27.185491+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 39 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T21:27:27.242944+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 193 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T21:27:27.258047+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T21:27:27.272294+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 11 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T21:27:27.282762+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 21 total short_ids found"} {"timestamp": "2026-07-10T21:27:27.288406+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 22dfb539, step=background_render, repaired=0)"} INFO: 127.0.0.1:64253 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64256 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64268 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64283 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64293 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64307 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64331 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64347 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64359 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64372 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64382 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64403 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64417 - "GET /api/v1/projects/8207aadc-7975-48f5-af17-ccc145a6660d/episodes/22dfb539-6062-42a0-9279-ab9dce6e5f11/steps HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [96796]