/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 [38233] INFO: Waiting for application startup. {"timestamp": "2026-07-08T06:40:17.123060+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:53141 - "GET /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/episodes/2ed8f997-7529-4e23-9536-226dda9fe195/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53141 - "GET /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/episodes/2ed8f997-7529-4e23-9536-226dda9fe195/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T06:40:20.858191+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:ed02e5c1-df1e-4f92-af56-45377ae85d47:2ed8f997-7529-4e23-9536-226dda9fe195:outdoor_site_layout (Step outdoor_site_layout for 2ed8f997-7529-4e23-9536-226dda9fe195)"} INFO: 127.0.0.1:53141 - "POST /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/episodes/2ed8f997-7529-4e23-9536-226dda9fe195/steps/outdoor_site_layout?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T06:40:20.875643+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout started (run_id=98d49c4b-21bc-42ce-9295-375eeb95e8fd, model=gpt)"} {"timestamp": "2026-07-08T06:40:20.896637+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 15:40:20 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-07-08T06:40:20.916825+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-07-08T06:40:20.917033+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 8 deployments (1 Gemini keys, OpenAI=True)"} 15:40:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:40:20.930137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53146 - "GET /api/v1/auth/login HTTP/1.1" 405 Method Not Allowed INFO: 127.0.0.1:53155 - "GET /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/episodes/2ed8f997-7529-4e23-9536-226dda9fe195/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53161 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-08T06:40:57.521252+00:00", "level": "WARNING", "logger": "app.core.job_manager", "message": "Job 'step:ed02e5c1-df1e-4f92-af56-45377ae85d47:2ed8f997-7529-4e23-9536-226dda9fe195:outdoor_site_layout' is already running, skipping"} INFO: 127.0.0.1:53161 - "POST /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/episodes/2ed8f997-7529-4e23-9536-226dda9fe195/steps/outdoor_site_layout?mode=resume HTTP/1.1" 409 Conflict 15:41:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:41:22.538403+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:41:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 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=06a4df11-28a2-7749-8000-07098237012f&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. {"timestamp": "2026-07-08T06:41:22.540266+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 15:41:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:41:22.549199+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 15:41:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:41:27.843483+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:41:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T06:41:27.846451+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 15:41:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:41:27.859541+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 15:41:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:41:54.392297+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:41:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T06:41:54.394940+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 15:41:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:41:54.409364+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:53184 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-08T06:42:10.177759+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "creator_corrections updated: project=ed02e5c1-df1e-4f92-af56-45377ae85d47 entries=1 (by admin)"} INFO: 127.0.0.1:53184 - "PUT /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/creator-corrections HTTP/1.1" 200 OK INFO: 127.0.0.1:53184 - "GET /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/creator-corrections HTTP/1.1" 200 OK {"timestamp": "2026-07-08T06:42:10.191124+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 57 shot_staging entries loaded"} {"timestamp": "2026-07-08T06:42:10.191779+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 19 scenes with fixed elements loaded"} {"timestamp": "2026-07-08T06:42:10.199762+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 41 shots mapped from 22 backgrounds"} {"timestamp": "2026-07-08T06:42:10.200373+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 41 shots mapped to bg_id from 22 backgrounds"} {"timestamp": "2026-07-08T06:42:10.208212+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 9 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-07-08T06:42:10.213155+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=ed02e5c1-df1e-4f92-af56-45377ae85d47 episode=2ed8f997-7529-4e23-9536-226dda9fe195 S13_Shot3 (mode=force)"} 15:42:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T06:42:10.219902+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 15:42:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:42:14.358760+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:42:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T06:42:14.360403+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T06:42:14.376292+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 1 key(s) loaded"} 15:42:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:42:44.790895+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:42:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T06:42:44.793721+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-08T06:42:44.814617+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: 제거할 ID: L04 — retry"} 15:42:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T06:42:44.816180+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 15:43:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:43:15.539361+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:43:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T06:43:15.542581+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-08T06:43:15.567295+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-07-08T06:43:15.567569+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_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-08T06:43:15.615505+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S13_Shot3, total=57, dirty=0, manifest_status=completed)"} {"timestamp": "2026-07-08T06:43:15.655631+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 38 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T06:43:15.698591+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 181 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-08T06:43:15.711182+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-08T06:43:15.728194+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 10 outlooks + 10 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T06:43:15.731158+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['낡은홈웨어']"} {"timestamp": "2026-07-08T06:43:15.742565+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 25 total short_ids found"} {"timestamp": "2026-07-08T06:43:15.747837+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 2ed8f997-7529-4e23-9536-226dda9fe195 analysis_error already set by caller — strict projection preserves it"} {"timestamp": "2026-07-08T06:43:15.749874+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 2ed8f997, step=scene_detail, repaired=0)"} {"timestamp": "2026-07-08T06:43:15.752246+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=57, failed=0) project=ed02e5c1-df1e-4f92-af56-45377ae85d47 episode=2ed8f997-7529-4e23-9536-226dda9fe195"} INFO: 127.0.0.1:53184 - "POST /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/episodes/2ed8f997-7529-4e23-9536-226dda9fe195/steps/scene-detail/redo-shot?scene_index=13&shot_index=3&mode=force HTTP/1.1" 200 OK {"timestamp": "2026-07-08T06:43:15.761408+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 57 shot_staging entries loaded"} {"timestamp": "2026-07-08T06:43:15.761899+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 19 scenes with fixed elements loaded"} {"timestamp": "2026-07-08T06:43:15.767193+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 41 shots mapped from 22 backgrounds"} {"timestamp": "2026-07-08T06:43:15.767950+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 41 shots mapped to bg_id from 22 backgrounds"} {"timestamp": "2026-07-08T06:43:15.770762+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 9 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-07-08T06:43:15.773209+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=ed02e5c1-df1e-4f92-af56-45377ae85d47 episode=2ed8f997-7529-4e23-9536-226dda9fe195 S13_Shot4 (mode=force)"} 15:43:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T06:43:15.779274+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 15:43:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:43:48.080289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:43:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T06:43:48.081606+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 15:43:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T06:43:48.103819+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 15:43:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:43:52.849289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:43:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T06:43:52.852462+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-08T06:43:52.920681+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S13_Shot4, total=57, dirty=0, manifest_status=completed)"} {"timestamp": "2026-07-08T06:43:52.952901+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 38 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T06:43:53.072714+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-07-08T06:43:53.096810+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 181 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-08T06:43:53.109950+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-08T06:43:53.123003+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 10 outlooks + 10 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T06:43:53.125124+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['낡은홈웨어']"} {"timestamp": "2026-07-08T06:43:53.133317+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 25 total short_ids found"} {"timestamp": "2026-07-08T06:43:53.137191+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 2ed8f997-7529-4e23-9536-226dda9fe195 analysis_error already set by caller — strict projection preserves it"} {"timestamp": "2026-07-08T06:43:53.138447+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 2ed8f997, step=scene_detail, repaired=0)"} {"timestamp": "2026-07-08T06:43:53.140621+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=57, failed=0) project=ed02e5c1-df1e-4f92-af56-45377ae85d47 episode=2ed8f997-7529-4e23-9536-226dda9fe195"} INFO: 127.0.0.1:53184 - "POST /api/v1/projects/ed02e5c1-df1e-4f92-af56-45377ae85d47/episodes/2ed8f997-7529-4e23-9536-226dda9fe195/steps/scene-detail/redo-shot?scene_index=13&shot_index=4&mode=force HTTP/1.1" 200 OK 15:52:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:52:09.821547+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 15:53:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:53:30.611635+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:53:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T06:53:30.614067+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 15:53:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:53:30.638864+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 15:53:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:53:36.230067+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:53:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T06:53:36.231248+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 15:53:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:53:36.241624+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 15:53:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:53:55.107327+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:53:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T06:53:55.109700+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 15:53:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:53:55.123614+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 15:54:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:54:05.729720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:54:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T06:54:05.731699+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 15:54:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T06:54:05.747302+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 15:54:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T06:54:17.237632+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 15:54:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T06:54:17.240386+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:54057 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:54107 - "POST /api/v1/auth/login HTTP/1.1" 200 OK 16:20:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:20:31.544984+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:20:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:20:39.173663+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:20:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:20:39.177042+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:54107 - "POST /api/v1/projects/ HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:20:39.210559+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "creator_corrections updated: project=1b4a975b-f4e5-46d7-8b28-876071d19907 entries=1 (by admin)"} INFO: 127.0.0.1:54107 - "PUT /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/creator-corrections HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:20:39.353077+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "Planning doc uploaded for project 1b4a975b: 20566 chars, 16 pages"} INFO: 127.0.0.1:54107 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/planning-doc HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:20:39.363023+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=1b4a975b): PDF multimodal (1504329 bytes)"} 16:20:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:20:39.364684+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:54107 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/ HTTP/1.1" 200 OK INFO: 127.0.0.1:54107 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/creator-corrections HTTP/1.1" 200 OK INFO: 127.0.0.1:54116 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:54116 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:20:48.552967+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:planning_doc_analysis (Step planning_doc_analysis for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54116 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/planning_doc_analysis?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:20:48.558341+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis started (run_id=d5964ffd-c2ba-4e6a-99e6-2534124ed7d6, model=gemini-lite)"} {"timestamp": "2026-07-08T07:20:48.562542+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: PDF multimodal (1504329 bytes)"} 16:20:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:20:48.563407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:21:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:21:18.433239+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:21:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:21:18.444864+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-08T07:21:18.463233+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=1b4a975b) done: 6 characters, 3 relationships, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'], job_id=67dcc0c11acb472f8e54f4f7db17cefb"} INFO: 127.0.0.1:54124 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:21:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:21:22.287566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:21:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:21:22.302324+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-08T07:21:22.312236+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: 5 characters, 4 relationships, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'], mode=pdf"} {"timestamp": "2026-07-08T07:21:22.326287+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T07:21:22.326735+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-08T07:21:22.327342+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-08T07:21:22.335829+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-08T07:21:22.343944+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:21:22.346810+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=planning_doc_analysis, repaired=0)"} INFO: 127.0.0.1:54161 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54161 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:21:48.668806+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:text_cleanup (Step text_cleanup for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54161 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/text_cleanup?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:21:48.678306+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=f84c6879-2871-4203-86f8-b50645ca306e, model=gemini-lite)"} {"timestamp": "2026-07-08T07:21:48.689492+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes, 18 pages) → model=gemini-lite"} 16:21:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:21:48.693602+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:21:48 - 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-08T07:21:48.696565+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)."} 16:22:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:22:03.814749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54181 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54191 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:23:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:23:02.571260+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:23:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:23:02.573510+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:23:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:23:02.600605+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:23:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:23:07.835744+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:23:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:23:07.838561+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:23:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:23:07.852977+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:23:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:23:16.208304+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:23:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:23:16.211483+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:23:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:23:16.223624+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:23:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:23:18.565599+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:23:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:23:18.573187+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-08T07:23:18.574687+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: extracted 9300 chars from 금월도 1부_260226(최종수정본).pdf"} {"timestamp": "2026-07-08T07:23:18.584883+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T07:23:18.585262+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-08T07:23:18.586156+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-08T07:23:18.596241+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-08T07:23:18.609671+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:23:18.615307+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=text_cleanup, repaired=0)"} INFO: 127.0.0.1:54208 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54208 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:23:18.838765+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:scene_segmentation (Step scene_segmentation for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54208 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/scene_segmentation?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:23:18.850393+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation started (run_id=48a746af-dc4b-4eef-8692-dadd6c655449, model=gemini-flash)"} 16:23:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:23:18.854699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:23:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:23:24.802848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:23:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:23:24.805376+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:23:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:23:31.384685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:23:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:23:31.386209+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-08T07:23:31.393492+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "Segmentation attempt 1: pattern=S#\\d+\\.\\s*[^/\\n]+\\s*/\\s*(?:D|N|실내|해\\s*질\\s*무렵|동틀무렵|소나기), matched=30, estimated=30"} {"timestamp": "2026-07-08T07:23:31.410138+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T07:23:31.410550+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-08T07:23:31.411631+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-08T07:23:31.420442+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-08T07:23:31.435719+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:23:31.441873+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=scene_segmentation, repaired=0)"} INFO: 127.0.0.1:54218 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54218 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:23:48.921169+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:episode_summary (Step episode_summary for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54218 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/episode_summary?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:23:48.930926+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary started (run_id=b2b9e8a8-e6e8-4a0a-a86a-8db99f475741, model=gpt-mini)"} 16:23:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:23:48.934989+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:24:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:24:04.966860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:24:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:24:04.967625+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-08T07:24:04.988367+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T07:24:04.988720+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-08T07:24:04.989281+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-08T07:24:04.999218+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-08T07:24:05.009192+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:24:05.015105+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=episode_summary, repaired=0)"} INFO: 127.0.0.1:54226 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54226 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:24:19.000359+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:visual_world_rules (Step visual_world_rules for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54226 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/visual_world_rules?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:24:19.009802+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules started (run_id=d384a7ff-56e3-4f32-ac67-9bce1ba51cd6, model=gpt)"} 16:24:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:24:19.022844+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54237 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:25:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:25:12.215181+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:25:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:25:12.217405+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:25:12.227238+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "VisualWorldRulesStep: 7 rules, era=현대, 2020년대 중반, region=대한민국 서해안 도시 및 도서 지역, planning_doc=True"} {"timestamp": "2026-07-08T07:25:12.238595+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T07:25:12.238965+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-08T07:25:12.239612+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-08T07:25:12.248238+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-08T07:25:12.255527+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:25:12.257931+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=visual_world_rules, repaired=0)"} INFO: 127.0.0.1:54249 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54249 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:25:19.120132+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:scene_save (Step scene_save for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54249 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/scene_save?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:25:19.130119+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save started (run_id=2cfcefe2-1231-43e3-b87b-74e784de87d0, model=-)"} {"timestamp": "2026-07-08T07:25:19.141694+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T07:25:19.142124+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-08T07:25:19.142725+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-08T07:25:19.148836+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-08T07:25:19.155716+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:25:19.157866+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=scene_save, repaired=0)"} INFO: 127.0.0.1:54258 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54258 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:25:49.186989+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_character_list (Step entity_character_list for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54258 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_character_list?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:25:49.195197+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list started (run_id=89186d80-601d-40be-9236-4a2971c8ec63, model=gemini-pro)"} 16:25:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:25:49.203351+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54269 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54278 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:26:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:26:53.987690+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:26:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:26:53.989615+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-08T07:26:53.996958+00:00", "level": "INFO", "logger": "app.core.steps.character_list_step", "message": "entity_character_list: 6 characters extracted"} {"timestamp": "2026-07-08T07:26:54.009656+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list completed (completed=6/6, failed=0)"} {"timestamp": "2026-07-08T07:26:54.010135+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-08T07:26:54.010842+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-08T07:26:54.018384+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-08T07:26:54.025504+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:26:54.031996+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_character_list, repaired=0)"} INFO: 127.0.0.1:54290 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54290 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:27:19.323223+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:scene_summary (Step scene_summary for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54290 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/scene_summary?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:27:19.333364+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary started (run_id=bf1a5365-1deb-402e-9b1e-70e7f15be335, model=gpt-mini)"} 16:27:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:19.345114+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:19.349153+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:19.350203+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:19.352374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:19.353740+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:24.018362+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:24.020122+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:24.029261+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:24.349766+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:24.352756+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:24.358326+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:24.359049+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:24.365841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:24.367896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:24.772050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:24.774843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:24.782292+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:25.603446+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:25.605620+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:25.615563+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:28.194565+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:28.199628+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:28.206916+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:28.771369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:28.774866+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:28.785377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:29.354762+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:29.358135+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:29.366226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:29.438111+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:29.440385+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:29.450469+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:31.019457+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:31.022324+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:31.032131+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:32.518495+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:32.520765+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:32.529111+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:33.688022+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:33.689258+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:33.695333+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:34.194364+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:34.198033+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:34.204906+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:35.185407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:35.187458+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:35.196186+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:35.605608+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:35.608541+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:35.616537+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:35.685844+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:35.688540+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:35.697992+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:37.604820+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:37.607002+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:37.615788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:38.936989+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:38.938633+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:38.943549+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:40.356040+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:40.358604+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:40.368160+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:40.682597+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:40.686210+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:40.695121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:41.267066+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:41.270595+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:41.280386+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:41.515906+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:41.518547+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:41.527480+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:41.678521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:41.680843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:41.690391+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:44.839665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:44.842124+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:44.851715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:46.007948+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:46.011505+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:27:46.018780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:27:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:46.428438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:46.433467+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:46.591338+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:46.593998+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:46.843294+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:46.845674+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 16:27:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:49.257521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:49.260221+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:54325 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:27:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:27:50.585126+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:27:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:27:50.586908+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-08T07:27:50.591490+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "SceneSummaryStep: 30/30 scenes summarized (0 failed)"} {"timestamp": "2026-07-08T07:27:50.607967+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T07:27:50.608484+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-08T07:27:50.610163+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-08T07:27:50.620132+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-08T07:27:50.629117+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:27:50.633995+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=scene_summary, repaired=0)"} INFO: 127.0.0.1:54344 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54344 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:28:19.435800+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:beat_extract (Step beat_extract for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54344 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/beat_extract?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:28:19.446622+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract started (run_id=9d63e5b2-7ebb-4131-9bf5-a746ba839d2a, model=gemini-pro)"} {"timestamp": "2026-07-08T07:28:19.448740+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 6 characters injected"} {"timestamp": "2026-07-08T07:28:19.457096+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 30 scenes → 4 bundles"} 16:28:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:28:19.463634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:28:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:28:19.466017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:28:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:28:19.467398+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:28:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:28:19.467863+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:28:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:28:49.151513+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:28:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:28:49.153776+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-08T07:28:49.166080+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 4 (scenes 28~30): 3 scenes, 7 beats"} INFO: 127.0.0.1:54356 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:29:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:29:06.670911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:29:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:29:06.674611+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-08T07:29:06.688380+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~11): 11 scenes, 13 beats"} 16:29:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:29:11.859379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:29:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:29:11.868493+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-08T07:29:11.887676+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 2 (scenes 12~18): 7 scenes, 14 beats"} 16:29:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:29:19.117293+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:29:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:29:19.120619+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-08T07:29:19.134827+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 3 (scenes 19~27): 9 scenes, 19 beats"} {"timestamp": "2026-07-08T07:29:19.135476+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 30 scenes, 53 beats"} {"timestamp": "2026-07-08T07:29:19.148431+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T07:29:19.148831+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-08T07:29:19.150099+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-08T07:29:19.156634+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-08T07:29:19.166135+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:29:19.169951+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=beat_extract, repaired=0)"} INFO: 127.0.0.1:54367 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54367 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:29:19.553463+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_extract (Step shot_extract for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54367 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_extract?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:29:19.562465+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract started (run_id=e8f20091-3c76-45ca-9593-f94d59d2c6e7, model=gemini-pro)"} {"timestamp": "2026-07-08T07:29:19.564490+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: t2i_context injected (441 chars)"} {"timestamp": "2026-07-08T07:29:19.564749+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 6 characters injected as enum"} {"timestamp": "2026-07-08T07:29:19.570507+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-08T07:29:19.571112+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 30 scenes → 4 bundles (sequential)"} 16:29:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:29:19.574257+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54376 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54385 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:30:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:30:44.182465+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:30:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:30:44.185875+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-08T07:30:44.200923+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 1 (scenes 1~11): 11 scenes, 48 shots"} 16:30:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:30:44.203983+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54393 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54403 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54412 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:32:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:32:03.350665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:32:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:32:03.353766+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-08T07:32:03.368277+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 2 (scenes 12~18): 7 scenes, 56 shots"} 16:32:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:32:03.370600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54426 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54435 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:32:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:32:54.507579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54452 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:33:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:33:22.994453+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:33:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:33:22.997243+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-08T07:33:23.014337+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 3 (scenes 19~27): 9 scenes, 49 shots"} 16:33:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:33:23.017684+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54459 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:34:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:03.451802+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:03.453324+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-08T07:34:03.462147+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 4 (scenes 28~30): 3 scenes, 19 shots"} {"timestamp": "2026-07-08T07:34:03.462705+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 30 scenes, 172 shots"} {"timestamp": "2026-07-08T07:34:03.477790+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T07:34:03.478155+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-08T07:34:03.479588+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-08T07:34:03.486279+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-08T07:34:03.495520+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:34:03.499344+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_extract, repaired=0)"} 16:34:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:06.860720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:34:06.863310+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:34:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:34:06.890169+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54471 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54471 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:34:20.050943+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_validator (Step shot_validator for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54471 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_validator?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:34:20.061237+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator started (run_id=88e2e20f-1b60-4ce8-bd62-8f2e81cb0d78, model=gemini-pro)"} {"timestamp": "2026-07-08T07:34:20.071843+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."} 16:34:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:20.078469+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:20.081724+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:20.082876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:20.084995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:28.277226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:28.280806+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:34:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:28.294655+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:30.523161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:30.525832+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:34:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:30.539588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:30.859886+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:30.862010+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:34:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:30.877288+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:34.428442+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:34:34.431358+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:34:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:34:34.446592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:34:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:39.357343+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:39.360287+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:34:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:39.373656+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:48.270950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:48.274006+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:34:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:48.287532+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54490 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:34:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:50.347823+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:50.350294+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:34:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:50.365896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:51.846936+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:51.849464+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:34:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:51.876421+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:56.665572+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:34:56.668268+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:34:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:34:56.683659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:34:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:34:57.698839+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:34:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:34:57.702183+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:35:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:00.656196+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:00.658779+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:00.674157+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:04.726439+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:04.728966+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:04.744049+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:13.641661+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:13.644394+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:13.659818+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54506 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:35:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:22.532817+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:22.535524+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:22.550955+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:23.958699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:23.960985+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:23.978859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:24.711542+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:24.715011+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:24.729940+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:29.879086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:29.881372+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:29.890691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:33.036746+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:33.040361+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:33.054582+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:42.112180+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:42.115085+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:42.128835+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:43.516361+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:43.518964+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:43.532407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:47.987520+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:47.992562+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:48.006312+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:35:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:35:50.014898+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:35:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:35:50.017773+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:35:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:35:50.034739+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54520 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:36:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:01.355778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:01.358561+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:36:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:36:01.371723+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:36:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:02.142073+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:02.144865+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-08T07:36:02.147199+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"} 16:36:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:36:02.152854+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:36:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:03.025801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:03.028525+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-08T07:36:03.030759+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"} 16:36:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:36:03.035468+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:36:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:03.907106+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:03.909698+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:36:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:36:03.923926+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:36:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:04.171014+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:04.174740+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:36:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:36:04.188120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:36:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:12.951057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:12.953493+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:36:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:36:12.968588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:36:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:18.586908+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:18.589527+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:36:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:36:18.603073+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54535 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:36:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:23.412014+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:23.414642+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:36:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:36:23.429559+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:36:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:28.761917+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:36:28.764715+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:36:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:40.885379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:40.888064+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:36:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:41.422667+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:41.423902+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:36:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:36:45.210494+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:36:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:36:45.213087+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-08T07:36:45.228600+00:00", "level": "INFO", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: 30 scenes, 172 shots total, 35 revised, 0 failed"} {"timestamp": "2026-07-08T07:36:45.244254+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T07:36:45.244653+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-08T07:36:45.247350+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-08T07:36:45.258238+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-08T07:36:45.269046+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:36:45.274837+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_validator, repaired=0)"} INFO: 127.0.0.1:54541 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54541 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:36:50.302082+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_all_character (Step entity_all_character for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54541 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_all_character?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:36:50.318902+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character started (run_id=c6f3fca6-dc2f-4274-aa15-f8958f7fa546, model=gemini-pro)"} 16:36:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:36:50.325223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54557 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:37:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:37:38.879013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:37:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:37:38.881520+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-08T07:37:38.890324+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_character (shot-based, 1 call): 14 entities from 172 shots"} {"timestamp": "2026-07-08T07:37:38.904008+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character completed (completed=14/14, failed=0)"} {"timestamp": "2026-07-08T07:37:38.904436+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-08T07:37:38.907087+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-08T07:37:38.913857+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-08T07:37:38.923501+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:37:38.927681+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_all_character, repaired=0)"} INFO: 127.0.0.1:54565 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54565 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:37:50.420653+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_extract_character (Step entity_extract_character for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54565 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_extract_character?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:37:50.431205+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character started (run_id=1c59dcae-500c-4e1f-9a81-b2f585a63bab, model=gpt)"} 16:37:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:37:50.437415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54583 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:38:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:38:38.876642+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:38:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:38:38.879443+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:38:38.901863+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character completed (completed=14/14, failed=0)"} {"timestamp": "2026-07-08T07:38:38.902233+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-08T07:38:38.904878+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-08T07:38:38.912594+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-08T07:38:38.924026+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:38:38.928930+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_extract_character, repaired=0)"} INFO: 127.0.0.1:54590 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54590 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:38:50.536134+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_all_location (Step entity_all_location for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54590 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_all_location?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:38:50.546959+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location started (run_id=4197e767-c1cf-44ca-b2b0-5c4e968fd632, model=gpt)"} 16:38:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:38:50.553020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54600 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54610 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54620 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:40:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:40:30.802653+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:40:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:40:30.805563+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:40:30.814418+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_location (shot-based, 1 call): 21 entities from 172 shots"} {"timestamp": "2026-07-08T07:40:30.822410+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location completed (completed=21/21, failed=0)"} {"timestamp": "2026-07-08T07:40:30.822773+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-08T07:40:30.826018+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-08T07:40:30.831387+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-08T07:40:30.839524+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:40:30.841670+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_all_location, repaired=0)"} INFO: 127.0.0.1:54631 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54631 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:40:50.729651+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_extract_location (Step entity_extract_location for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54631 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_extract_location?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:40:50.737692+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location started (run_id=20f692a0-744b-47cd-a7b1-81abd51c2783, model=gemini-pro)"} 16:40:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:40:50.743508+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54641 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:41:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:41:32.077715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:41:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:41:32.080025+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-08T07:41:32.101955+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location completed (completed=21/21, failed=0)"} {"timestamp": "2026-07-08T07:41:32.102244+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-08T07:41:32.104692+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-08T07:41:32.115314+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-08T07:41:32.129162+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:41:32.133155+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_extract_location, repaired=0)"} INFO: 127.0.0.1:54648 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54648 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:41:50.863514+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_all_prop (Step entity_all_prop for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54648 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_all_prop?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:41:50.873915+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop started (run_id=e68fcd75-7dc1-43e5-893c-955190517f3b, model=gpt)"} 16:41:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:41:50.879738+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54662 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54668 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:43:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:43:18.151142+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:43:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:43:18.153301+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:43:18.159587+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_prop (shot-based, 1 call): 14 entities from 172 shots"} {"timestamp": "2026-07-08T07:43:18.170684+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop completed (completed=14/14, failed=0)"} {"timestamp": "2026-07-08T07:43:18.170976+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-08T07:43:18.173489+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-08T07:43:18.184646+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-08T07:43:18.196661+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:43:18.199491+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_all_prop, repaired=0)"} INFO: 127.0.0.1:54687 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54687 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:43:21.036926+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_extract_prop (Step entity_extract_prop for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54687 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_extract_prop?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:43:21.046982+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop started (run_id=f0e8e6cd-5866-4f19-abd0-75997c56ab1f, model=gemini-pro)"} 16:43:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:43:21.051227+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:43:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:43:24.315693+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54697 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:43:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:43:56.946024+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:43:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:43:56.948365+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-08T07:43:56.974951+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop completed (completed=14/14, failed=0)"} {"timestamp": "2026-07-08T07:43:56.975499+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-08T07:43:56.979663+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-08T07:43:56.989889+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-08T07:43:57.001226+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:43:57.005804+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_extract_prop, repaired=0)"} 16:44:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:44:10.045175+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:44:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:44:10.046479+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:44:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:44:10.067806+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54707 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54707 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:44:21.170023+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_merge (Step entity_merge for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54707 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_merge?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:44:21.181898+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge started (run_id=1a1563ad-285e-4d30-b8e6-4a7860fcb7f6, model=gpt)"} 16:44:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:44:21.185883+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:44:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:44:25.533613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:44:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:44:25.537098+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:44:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:44:25.563826+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:44:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:44:31.550598+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:44:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:44:31.553198+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:44:31.557994+00:00", "level": "INFO", "logger": "app.core.steps.entity_steps", "message": "Entity merge: removed ['L17']"} {"timestamp": "2026-07-08T07:44:31.572576+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge completed (completed=48/49, failed=0)"} {"timestamp": "2026-07-08T07:44:31.572947+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-08T07:44:31.576292+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-08T07:44:31.585424+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-08T07:44:31.595850+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:44:31.600120+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_merge, repaired=0)"} 16:44:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:44:32.579702+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:44:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:44:32.582325+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:54719 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54719 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:44:51.246697+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_relation (Step entity_relation for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54719 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_relation?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:44:51.254348+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation started (run_id=0d1b0974-6196-4810-b0e0-c88dcd4a9fa8, model=gpt)"} 16:44:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:44:51.263763+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:45:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:45:08.492937+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:45:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:45:08.495854+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:45:08.507273+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_relation", "message": "Entity relations: 2 candidates → 2 confirmed (2 visual_similar)"} {"timestamp": "2026-07-08T07:45:08.521567+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T07:45:08.521985+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-08T07:45:08.528753+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C03→C04"} {"timestamp": "2026-07-08T07:45:08.528949+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C07→C12"} {"timestamp": "2026-07-08T07:45:08.533428+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-08T07:45:08.538542+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-08T07:45:08.551222+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:45:08.556886+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_relation, repaired=0)"} INFO: 127.0.0.1:54731 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54731 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:45:21.336994+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_filter (Step entity_filter for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54731 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_filter?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:45:21.347474+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter started (run_id=8d1473b0-f206-46c9-967a-e42d5b8d6919, model=gpt-mini)"} 16:45:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:45:21.354459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:45:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:45:32.903307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:45:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:45:32.905989+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-08T07:45:32.915759+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_filter", "message": "Filtered 7 low-freq entities → removed 6"} {"timestamp": "2026-07-08T07:45:32.928303+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T07:45:32.928761+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-08T07:45:32.935125+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C03→C04"} {"timestamp": "2026-07-08T07:45:32.935328+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C07→C12"} {"timestamp": "2026-07-08T07:45:32.940671+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-08T07:45:32.948474+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-08T07:45:32.964327+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:45:32.968390+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_filter, repaired=0)"} INFO: 127.0.0.1:54738 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54738 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:45:51.409123+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_detail (Step entity_detail for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54738 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_detail?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:45:51.421164+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail started (run_id=6c7f110c-0898-41a6-ba78-4b4ac3041c37, model=gpt)"} 16:45:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:45:51.433219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54750 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54759 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54768 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54779 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:47:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:47:51.872831+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:47:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:47:51.875675+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:47:51.904681+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail completed (completed=42/42, failed=0)"} {"timestamp": "2026-07-08T07:47:51.904967+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-08T07:47:51.908911+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C03→C04"} {"timestamp": "2026-07-08T07:47:51.909139+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C07→C12"} {"timestamp": "2026-07-08T07:47:51.913584+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-08T07:47:51.920077+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-08T07:47:51.931368+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:47:51.935006+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_detail, repaired=0)"} INFO: 127.0.0.1:54796 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54796 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:48:21.668303+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:entity_t2i (Step entity_t2i for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54796 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/entity_t2i?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:48:21.676425+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i started (run_id=ea393311-7094-4d84-993a-f875fa29c956, model=gemini-pro)"} 16:48:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:21.682767+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:22.690699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:23.701060+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:24.701650+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:25.711146+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:26.398924+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:26.401174+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:26.718205+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:27.717200+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:28.722958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:29.735662+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:30.735474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:31.738100+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:32.962433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:32.965270+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:32.984242+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:33.467414+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:33.470064+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:33.754403+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:34.635869+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:34.639411+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:34.758017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:36.391040+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:36.394323+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:36.414783+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:38.465889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:38.468679+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:38.490155+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:38.879502+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:38.883012+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:38.901863+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:39.295782+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:39.298387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:39.319662+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:39.461669+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:39.463035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:39.540918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:39.542251+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:39.771181+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:40.774201+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:43.786056+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:43.788528+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:43.807018+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:44.697574+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:44.700468+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:44.719289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:46.783139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:46.786133+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:46.806986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:47.290218+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:47.292923+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:47.316413+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:50.453998+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:50.456094+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:50.476068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:50.536448+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:50.539273+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:50.559082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:50.619918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:50.622639+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:50.642721+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:51.432811+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:51.435460+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:51.478227+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54829 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:48:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:52.119037+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:52.122552+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:52.141405+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:53.284971+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:53.287507+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:53.307749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:55.942430+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:55.943906+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:55.961582+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:57.101585+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:57.104563+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:57.124790+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:59.284647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:59.286548+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:59.290297+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:59.292002+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:59.316392+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:59.318849+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:48:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:48:59.717027+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:48:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:48:59.718616+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:48:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:48:59.740518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:49:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:00.198106+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:00.200287+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:49:00.218305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:49:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:02.034382+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:02.037498+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:49:02.058818+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:49:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:03.608466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:03.610341+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:49:03.627127+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:49:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:04.524556+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:04.527202+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:49:04.549577+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:49:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:06.770579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:06.772800+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:49:06.796254+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:49:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:07.193138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:07.195562+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:49:07.216437+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:49:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:08.196063+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:08.200808+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:49:08.219029+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 16:49:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:09.187051+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:09.188798+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:10.935009+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:10.937579+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:11.187550+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:11.190380+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:12.521084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:12.523952+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:13.345239+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:13.348858+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:14.095673+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:14.099349+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:18.169225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:18.171460+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:18.839223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:18.841735+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 16:49:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:20.919878+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:20.922404+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:54853 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:49:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:22.343280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:49:22.345749+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-08T07:49:22.388833+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i completed (completed=42/42, failed=0)"} {"timestamp": "2026-07-08T07:49:22.418393+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T07:49:22.428222+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Visual-variant delta sync: +2 / ~0 / -0 (total=2)"} {"timestamp": "2026-07-08T07:49:22.431365+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-08T07:49:22.444129+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-08T07:49:22.454985+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:49:22.458481+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=entity_t2i, repaired=0)"} INFO: 127.0.0.1:54863 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54863 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:49:51.844771+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_selection (Step shot_selection for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54863 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_selection?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:49:51.854986+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection started (run_id=50b856b1-684c-462b-bb53-971f48341186, model=gpt-mini)"} {"timestamp": "2026-07-08T07:49:51.863928+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 3 scenes auto-selected (1-shot), 27 scenes to evaluate (abs_max=3, ratio_cap=50%)"} 16:49:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:49:51.870188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:49:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:49:51.872516+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:49:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:49:51.874363+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:49:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:49:51.875928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:49:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:56.316266+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:49:56.319431+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-08T07:49:56.326584+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 3: 1/3 selected (eff_max=1)"} 16:49:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:49:56.329610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:49:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:58.065638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:49:58.069308+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-08T07:49:58.076221+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 5: 2/11 selected (eff_max=3)"} 16:49:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:49:58.078704+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:49:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:49:58.321429+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:49:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:49:58.324869+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-08T07:49:58.333643+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 2: 2/4 selected (eff_max=2)"} 16:49:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:49:58.335989+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:00.150388+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:00.153374+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-08T07:50:00.160498+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 1: 2/5 selected (eff_max=2)"} 16:50:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:00.163804+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:03.400578+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:03.404020+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-08T07:50:03.410640+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 8: 2/5 selected (eff_max=2)"} 16:50:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:03.413564+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:03.897353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:03.900971+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-08T07:50:03.908327+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 7: 2/7 selected (eff_max=3)"} 16:50:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:03.911239+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:04.227143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:04.229648+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-08T07:50:04.237598+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 10: 2/6 selected (eff_max=3)"} 16:50:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:04.239891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:07.317935+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:07.320508+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-08T07:50:07.329300+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 11: 2/4 selected (eff_max=2)"} 16:50:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:07.332497+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:10.319791+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:10.322339+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-08T07:50:10.329980+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 13: 2/7 selected (eff_max=3)"} 16:50:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:10.332926+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:11.985101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:11.986261+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-08T07:50:11.990875+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 14: 2/11 selected (eff_max=3)"} 16:50:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:11.993549+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:12.155386+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:12.157367+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-08T07:50:12.165492+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 12: 2/15 selected (eff_max=3)"} 16:50:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:12.168737+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:13.485281+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:13.487839+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-08T07:50:13.494143+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 15: 2/4 selected (eff_max=2)"} 16:50:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:13.497370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:14.648609+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:14.651714+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-08T07:50:14.660286+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 16: 1/4 selected (eff_max=2)"} 16:50:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:14.663014+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:15.983665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:15.986181+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-08T07:50:15.992316+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 17: 1/3 selected (eff_max=1)"} 16:50:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:15.995295+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:19.138140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:19.140661+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-08T07:50:19.148204+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 19: 2/4 selected (eff_max=2)"} 16:50:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:19.150843+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:19.808944+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:19.812297+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-08T07:50:19.821697+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 18: 3/12 selected (eff_max=3)"} 16:50:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:19.824877+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:20.723144+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:20.726148+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-08T07:50:20.734154+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 20: 2/4 selected (eff_max=2)"} 16:50:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:20.737758+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:54892 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:50:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:22.388800+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:22.391690+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-08T07:50:22.398557+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 21: 2/12 selected (eff_max=3)"} 16:50:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:22.401644+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:22.807491+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:22.809956+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-08T07:50:22.818134+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 22: 1/2 selected (eff_max=1)"} 16:50:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:22.820466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:25.218615+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:25.221701+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-08T07:50:25.229534+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 24: 1/3 selected (eff_max=1)"} 16:50:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:25.233009+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:26.643634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:26.647187+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-08T07:50:26.654096+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 23: 2/4 selected (eff_max=2)"} 16:50:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:26.656375+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:29.065749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:29.070857+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-08T07:50:29.076861+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 26: 3/10 selected (eff_max=3)"} 16:50:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:29.079462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:29.994055+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:29.995985+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-08T07:50:30.001147+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 27: 1/2 selected (eff_max=1)"} 16:50:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T07:50:30.003543+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 16:50:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:30.738969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:30.741016+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-08T07:50:30.749579+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 25: 3/8 selected (eff_max=3)"} 16:50:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:33.064889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:33.068430+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-08T07:50:33.076330+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 28: 2/8 selected (eff_max=3)"} 16:50:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:33.144486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:33.146333+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-08T07:50:33.152795+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 30: 1/3 selected (eff_max=1)"} 16:50:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:50:36.237707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:50:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T07:50:36.240559+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-08T07:50:36.248407+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 29: 3/8 selected (eff_max=3)"} {"timestamp": "2026-07-08T07:50:36.249025+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 54/172 shots selected across 30 scenes"} {"timestamp": "2026-07-08T07:50:36.263705+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T07:50:36.335781+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T07:50:36.348066+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-08T07:50:36.358782+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-08T07:50:36.371369+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:50:36.374488+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_selection, repaired=0)"} INFO: 127.0.0.1:54904 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54904 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:50:51.968754+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:scene_director (Step scene_director for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54904 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/scene_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:50:52.023212+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T07:50:52.035368+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-08T07:50:52.041646+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-08T07:50:52.049351+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:50:52.051388+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=-, repaired=0)"} {"timestamp": "2026-07-08T07:50:52.057510+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=47a7392c-e944-47f7-b509-d1039ca22ae6, model=gemini-pro)"} {"timestamp": "2026-07-08T07:50:52.064103+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} {"timestamp": "2026-07-08T07:50:52.072821+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."} 16:50:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T07:50:52.075686+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54915 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54922 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:51:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:51:58.464431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:51:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T07:51:58.466786+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-08T07:51:58.490799+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T07:51:58.549741+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T07:51:58.559575+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-08T07:51:58.567575+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-08T07:51:58.576036+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:51:58.578063+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=scene_director, repaired=0)"} INFO: 127.0.0.1:54932 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54932 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:52:22.136342+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_director (Step shot_director for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:54932 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:52:22.146620+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director started (run_id=4116f881-cf74-4db5-a5f8-5b821f9020c3, model=gpt)"} 16:52:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:52:22.157797+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:52:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:52:34.370644+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:52:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:52:34.373489+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:52:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:52:34.387280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:52:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:52:42.174021+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:52:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:52:42.176782+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:52:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:52:42.191347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:52:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:52:51.206594+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:52:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:52:51.209552+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:52:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:52:51.221324+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54950 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:52:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:52:53.383938+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:52:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:52:53.387342+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:52:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:52:53.402091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:53:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:53:05.984712+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:53:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:53:06.403138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:53:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:53:06.406446+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:53:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:53:06.420806+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:53:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:53:14.146073+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:53:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:53:14.149743+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:53:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:53:14.161772+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:53:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:53:20.640733+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:53:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:53:20.643048+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:53:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:53:20.667161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54972 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:53:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:53:22.989827+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:53:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:53:22.992117+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:53:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:53:23.001507+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:53:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:53:35.721881+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:53:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:53:35.723658+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:53:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:53:35.737098+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:53:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:53:38.744955+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:53:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:53:38.748277+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:53:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:53:38.760465+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:53:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:53:39.345534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:53:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:53:39.349021+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:54982 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:54:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:54:21.614119+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:54:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:54:21.616015+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:54:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:54:21.629297+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54993 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:54:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:54:28.795541+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:54:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:54:28.797991+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:54:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:54:28.811934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:54:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:54:40.403632+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:54:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:54:40.406041+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:54:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:54:40.418463+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55005 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:55:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:55:02.686349+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:55:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:55:02.689559+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:55:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:55:02.703666+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:55:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:55:14.432618+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:55:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:55:14.436053+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:55:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:55:14.448084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55018 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:55:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:55:38.995619+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:55:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:55:38.997260+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:55:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:55:39.007924+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:55:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:55:50.895576+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:55:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:55:50.898246+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:55:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:55:50.911496+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55028 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:55:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:55:57.061318+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:55:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:55:57.064164+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:55:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:55:57.077799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:56:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:56:12.989650+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:56:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:56:12.992398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:56:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:56:13.006391+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:56:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:56:18.442664+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:56:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:56:18.445396+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:56:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:56:18.459804+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55039 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:56:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:56:25.373541+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:56:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:56:25.377872+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:56:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:56:25.389373+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:56:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:56:31.694837+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:56:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:56:31.697439+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:56:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:56:31.711355+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:56:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:56:36.118077+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:56:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:56:36.121611+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:56:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:56:36.133663+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:56:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:56:42.868581+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:56:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:56:42.871222+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:56:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:56:42.886458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:56:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:56:45.479182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:56:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:56:45.482100+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:56:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:56:45.496489+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55050 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:56:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:56:56.110275+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:56:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:56:56.113007+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:56:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:56:56.126775+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55058 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:57:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:57:27.304672+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:57:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:57:27.307785+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:57:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:57:27.319956+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:57:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:57:31.624103+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:57:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:57:31.625929+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:57:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:57:31.639253+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:57:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:57:40.883253+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:57:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:57:40.885809+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:57:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:57:40.901224+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:57:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:57:52.552549+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:57:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:57:52.555308+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 16:57:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:57:52.568250+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55073 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:57:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:57:56.945218+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:57:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:57:56.948657+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:57:56.957585+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_director", "message": "shot_director: 30 scenes (30 LLM, 0 skipped), 54 total shots"} {"timestamp": "2026-07-08T07:57:56.972865+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T07:57:57.020946+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T07:57:57.029322+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-08T07:57:57.035956+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-08T07:57:57.044021+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T07:57:57.046381+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_director, repaired=0)"} INFO: 127.0.0.1:55089 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55089 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:58:22.680671+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:scene_camera_flow (Step scene_camera_flow for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55089 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/scene_camera_flow?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T07:58:22.694263+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow started (run_id=ed7b8188-8786-4a03-b30f-644f0cd68502, model=gpt)"} 16:58:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:58:22.709171+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:58:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:58:22.710899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:58:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:58:22.713087+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:58:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:58:22.715135+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:58:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:58:40.228686+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:58:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:58:40.231235+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:58:40.247422+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S4: 2 stages, 1 shot assignments"} 16:58:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:58:40.250868+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:58:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:58:43.271121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:58:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:58:43.274111+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:58:43.288994+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S3: 3 stages, 1 shot assignments"} 16:58:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:58:43.292011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:58:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:58:44.474196+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:58:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:58:44.477184+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:58:44.492751+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S1: 5 stages, 2 shot assignments"} 16:58:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:58:44.495748+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:58:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:58:47.736537+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:58:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:58:47.739185+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:58:47.755136+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S2: 4 stages, 2 shot assignments"} 16:58:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:58:47.757654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55107 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:59:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:59:03.737448+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:59:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:59:03.740323+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:59:03.754713+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S6: 3 stages, 1 shot assignments"} 16:59:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:59:03.758288+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:59:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:59:04.481950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:59:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:59:04.485543+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:59:04.499080+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S5: 4 stages, 2 shot assignments"} 16:59:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:59:04.502155+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:59:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:59:12.330000+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:59:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:59:12.332243+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:59:12.347566+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S8: 5 stages, 2 shot assignments"} 16:59:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:59:12.350099+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55118 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:59:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:59:23.217588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:59:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:59:23.220242+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:59:23.238436+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S7: 5 stages, 2 shot assignments"} 16:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:59:23.241177+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:59:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:59:26.863852+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:59:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:59:26.867270+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:59:26.881693+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S9: 3 stages, 1 shot assignments"} 16:59:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:59:26.885164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:59:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:59:29.828270+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:59:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:59:29.830753+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:59:29.845103+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S10: 3 stages, 2 shot assignments"} 16:59:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:59:29.847301+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 16:59:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:59:34.813169+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:59:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:59:34.815235+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:59:34.831977+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S11: 4 stages, 2 shot assignments"} 16:59:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:59:34.835027+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55130 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 16:59:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T07:59:57.888027+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 16:59:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T07:59:57.890952+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T07:59:57.905944+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S12: 6 stages, 2 shot assignments"} 16:59:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T07:59:57.909001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:05.692175+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:05.694812+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:05.710367+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S15: 4 stages, 2 shot assignments"} 17:00:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:05.712492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:06.956701+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:06.958924+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:06.971628+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S13: 6 stages, 2 shot assignments"} 17:00:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:06.973905+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:07.422385+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:07.425170+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:07.443366+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S14: 6 stages, 2 shot assignments"} 17:00:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:07.446706+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:18.391637+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:18.394171+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:18.408012+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S16: 4 stages, 1 shot assignments"} 17:00:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:18.411044+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55143 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:00:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:24.006320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:24.007489+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:24.018653+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S17: 3 stages, 1 shot assignments"} 17:00:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:24.027443+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:31.216803+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:31.219416+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:31.233640+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S19: 4 stages, 2 shot assignments"} 17:00:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:31.236593+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:41.331287+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:41.333685+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:41.350375+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S20: 3 stages, 2 shot assignments"} 17:00:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:41.353438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:43.368270+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:43.369375+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:43.385274+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S18: 5 stages, 3 shot assignments"} 17:00:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:43.387813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:50.177677+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:50.180191+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:50.197037+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S21: 5 stages, 2 shot assignments"} 17:00:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:50.199965+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:00:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:00:51.629439+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:00:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:00:51.632228+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:00:51.648937+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S22: 3 stages, 1 shot assignments"} 17:00:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:00:51.653152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55155 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:01:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:01:02.244215+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:01:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:01:02.245841+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:01:02.262934+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S23: 3 stages, 2 shot assignments"} 17:01:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:01:02.265028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:01:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:01:03.439484+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:01:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:01:03.442137+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:01:03.457597+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S24: 3 stages, 1 shot assignments"} 17:01:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:01:03.460069+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:01:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:01:16.089407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:01:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:01:16.091822+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:01:16.105880+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S25: 5 stages, 3 shot assignments"} 17:01:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:01:16.109288+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:01:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:01:17.547980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:01:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:01:17.550350+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:01:17.565220+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S27: 2 stages, 1 shot assignments"} 17:01:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:01:17.568503+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55168 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:01:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:01:27.137971+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:01:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:01:27.141121+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:01:27.155359+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S26: 4 stages, 3 shot assignments"} 17:01:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:01:27.258589+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:01:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:01:27.261308+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:01:27.275791+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S28: 4 stages, 2 shot assignments"} 17:01:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:01:38.197099+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:01:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:01:38.199219+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:01:38.220092+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S30: 3 stages, 1 shot assignments"} 17:01:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:01:43.440913+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:01:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:01:43.444101+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:01:43.459410+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S29: 5 stages, 3 shot assignments"} {"timestamp": "2026-07-08T08:01:43.479385+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T08:01:43.523165+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:01:43.530803+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-08T08:01:43.537071+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-08T08:01:43.543945+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T08:01:43.545863+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=scene_camera_flow, repaired=0)"} INFO: 127.0.0.1:55176 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55176 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:01:53.039339+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_dependency (Step shot_dependency for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55176 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_dependency?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:01:53.050328+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency started (run_id=aca0ecfb-b843-48f8-bc67-a7a8a3138c88, model=gpt)"} {"timestamp": "2026-07-08T08:01:53.058408+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_step", "message": "shot_dependency: 36/54 shots linked (code-based scoring)"} {"timestamp": "2026-07-08T08:01:53.065438+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency completed (completed=54/54, failed=0)"} {"timestamp": "2026-07-08T08:01:53.122398+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:01:53.131843+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-08T08:01:53.139758+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-08T08:01:53.148370+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T08:01:53.151075+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_dependency, repaired=0)"} INFO: 127.0.0.1:55185 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55185 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:02:23.116594+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:outlook_phase1 (Step outlook_phase1 for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55185 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/outlook_phase1?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:02:23.175699+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:02:23.184784+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-08T08:02:23.193246+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-08T08:02:23.203792+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 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_site_layout', '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-08T08:02:23.205833+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=-, repaired=0)"} {"timestamp": "2026-07-08T08:02:23.212310+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 started (run_id=138c1628-97da-4fba-b563-16029a745570, model=gemini-pro)"} {"timestamp": "2026-07-08T08:02:23.217686+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1: 30 scenes, 14 characters"} 17:02:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:02:23.223445+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55196 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:03:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:03:01.632158+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55213 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:03:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:03:36.642013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:03:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:03:36.645009+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-08T08:03:36.655537+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 complete: 13 outlooks (O01~O13)"} {"timestamp": "2026-07-08T08:03:36.655920+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 1/2: 2 orphan characters — ['C09(로트와일러)', 'C13(검은 고양이)']"} 17:03:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:03:36.660520+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:03:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:03:44.602365+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:03:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:03:44.604476+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-08T08:03:44.612979+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 1: LLM returned 0 outlooks, stopping"} {"timestamp": "2026-07-08T08:03:44.613854+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) assigned to 2 characters: ['C09', 'C13']"} {"timestamp": "2026-07-08T08:03:44.626958+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 completed (completed=14/14, failed=0)"} {"timestamp": "2026-07-08T08:03:44.700895+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:03:44.710602+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-08T08:03:44.717086+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-08T08:03:44.725774+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:03:44.728281+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=outlook_phase1, repaired=0)"} INFO: 127.0.0.1:55221 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55221 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:03:53.290556+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:outlook_phase2 (Step outlook_phase2 for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55221 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/outlook_phase2?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:03:53.348394+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:03:53.359346+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-08T08:03:53.365864+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-08T08:03:53.374701+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:03:53.376766+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=-, repaired=0)"} {"timestamp": "2026-07-08T08:03:53.382559+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=8733f582-73a0-4f3c-bc8f-1ed653098279, model=gemini-pro)"} {"timestamp": "2026-07-08T08:03:53.386289+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 13 outlooks to 30 scenes (O00: 2 chars excluded)"} 17:03:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:03:53.391036+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:03:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:03:57.754811+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:03:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:03:57.757680+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:03:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:03:57.785144+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:04:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:04:03.023961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:04:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:04:03.027171+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:04:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:04:03.042510+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:04:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:04:16.013679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:04:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:04:16.016476+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:04:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:04:16.035848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55234 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:04:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:04:26.834007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:04:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:04:26.837228+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:04:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:04:39.866715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:04:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:04:39.870054+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-08T08:04:39.884329+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 28 scene assignments"} {"timestamp": "2026-07-08T08:04:39.884623+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1/3: 2씬 누락"} 17:04:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:04:39.888583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} {"timestamp": "2026-07-08T08:04:46.140255+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout completed (completed=8/8, failed=0)"} {"timestamp": "2026-07-08T08:04:46.194934+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 38 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:04:46.274393+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 181 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-08T08:04:46.297088+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-08T08:04:46.320981+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 10 outlooks + 10 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:04:46.325232+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['낡은홈웨어']"} {"timestamp": "2026-07-08T08:04:46.341112+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 25 total short_ids found"} {"timestamp": "2026-07-08T08:04:46.364964+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 2ed8f997, step=outdoor_site_layout, repaired=0)"} 17:04:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:04:51.696647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:04:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:04:51.698608+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-08T08:04:51.706411+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1: 2/2 복구"} {"timestamp": "2026-07-08T08:04:51.706787+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 injected into 2 scene-character slots"} {"timestamp": "2026-07-08T08:04:51.717512+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=29/30, failed=0)"} {"timestamp": "2026-07-08T08:04:51.763319+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:04:51.771917+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-08T08:04:51.778632+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-08T08:04:51.786668+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:04:51.789126+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=outlook_phase2, repaired=0)"} INFO: 127.0.0.1:55248 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55248 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:04:53.408631+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:outlook_phase3 (Step outlook_phase3 for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55248 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/outlook_phase3?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:04:53.465901+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:04:53.477048+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-08T08:04:53.484946+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-08T08:04:53.492870+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:04:53.494801+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=-, repaired=0)"} {"timestamp": "2026-07-08T08:04:53.500264+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=a4d58805-4fce-4763-98e4-a71659e55b34, model=gemini-pro)"} {"timestamp": "2026-07-08T08:04:53.504163+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 13 outlooks, 29 assignments (O00 protected)"} 17:04:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:04:53.508980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:05:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:05:03.335339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:05:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:05:03.337976+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-08T08:05:03.346628+00:00", "level": "INFO", "logger": "app.modules.pipeline.outlook_extractor_v2", "message": "Phase3 code cleanup: 13→12 outlooks (removed 1, merged 0)"} {"timestamp": "2026-07-08T08:05:03.346795+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) preserved in phase3 result"} {"timestamp": "2026-07-08T08:05:03.346882+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 13 outlooks (removed 1)"} {"timestamp": "2026-07-08T08:05:03.358116+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=13/1, failed=0)"} {"timestamp": "2026-07-08T08:05:03.418925+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:05:03.432786+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-08T08:05:03.458446+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +13 / -0)"} {"timestamp": "2026-07-08T08:05:03.463013+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:05:03.474229+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-08T08:05:03.482421+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:05:03.484541+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=outlook_phase3, repaired=0)"} INFO: 127.0.0.1:55257 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55257 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:05:23.503732+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_staging (Step shot_staging for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55257 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_staging?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:05:23.514141+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging started (run_id=68c1bc96-547c-439d-8216-ce1230e872fd, model=gpt)"} {"timestamp": "2026-07-08T08:05:23.522760+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging: 54 selected shots to analyze"} 17:05:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:05:23.524745+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55265 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55273 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55280 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55291 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:07:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:07:42.914054+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:07:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:07:42.920069+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:07:42.951915+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 1/6 attempt 1: 10 shots ok"} 17:07:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:07:42.954168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55305 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55321 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55327 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55336 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:09:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:09:42.009588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:09:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:09:42.012219+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:09:42.042866+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 2/6 attempt 1: 10 shots ok"} 17:09:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:09:42.045164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55347 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55359 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55368 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55376 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55383 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:12:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:12:15.155203+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:12:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:12:15.157959+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:12:15.188994+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 3/6 attempt 1: 10 shots ok"} 17:12:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:12:15.190935+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55393 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55406 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55424 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55432 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55441 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:14:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:14:27.850038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:14:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:14:27.852018+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:14:27.881341+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 4/6 attempt 1: 10 shots ok"} 17:14:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:14:27.883078+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55450 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55459 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55466 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55477 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:16:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:16:33.523086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:16:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:16:33.526730+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:16:33.557218+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 5/6 attempt 1: 10 shots ok"} 17:16:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:16:33.558911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55487 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55496 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55507 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:18:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:18:06.144422+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:18:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:18:06.147038+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:18:06.174473+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 6/6 attempt 1: 4 shots ok"} {"timestamp": "2026-07-08T08:18:06.191328+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging completed (completed=54/54, failed=0)"} {"timestamp": "2026-07-08T08:18:06.242840+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:18:06.252528+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-08T08:18:06.271213+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:18:06.274569+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:18:06.280789+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-08T08:18:06.290830+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:18:06.293449+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_staging, repaired=0)"} INFO: 127.0.0.1:55524 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55524 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:18:24.654913+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:background_classify (Step background_classify for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55524 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/background_classify?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:18:24.669522+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify started (run_id=2674559b-294d-4b32-ba38-12517f84692f, model=gpt)"} 17:18:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:18:24.677214+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55531 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:19:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:19:10.658532+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:19:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:19:10.660678+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:19:10.689939+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T08:19:10.746110+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:19:10.757645+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-08T08:19:10.777540+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:19:10.781019+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:19:10.788111+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-08T08:19:10.796956+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:19:10.799426+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=background_classify, repaired=0)"} INFO: 127.0.0.1:55542 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55542 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:19:24.792019+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:background_master_plan (Step background_master_plan for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55542 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/background_master_plan?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:19:24.804580+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan started (run_id=f5e3040a-d85e-4daa-8023-8e40ea32ff16, model=gpt)"} 17:19:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:19:24.823627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:19:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:19:24.827242+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:19:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:19:24.834057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:19:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:19:24.835715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:19:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:19:43.104727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:19:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:19:43.107300+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:55558 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:20:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:20:06.083729+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:20:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:20:06.087175+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:20:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:20:08.546028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:20:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:20:08.547256+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:55567 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:20:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:20:33.191252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:20:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:20:33.194029+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:20:33.228684+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan completed (completed=4/4, failed=0)"} {"timestamp": "2026-07-08T08:20:33.279635+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:20:33.290012+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-08T08:20:33.307347+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:20:33.310694+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:20:33.318544+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-08T08:20:33.328023+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:20:33.330370+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=background_master_plan, repaired=0)"} INFO: 127.0.0.1:55575 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55575 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:20:54.954196+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:floor_plan_prompt (Step floor_plan_prompt for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55575 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/floor_plan_prompt?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:20:54.969008+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt started (run_id=fde96027-2521-4936-8c05-56c1f7db7e83, model=gpt)"} 17:20:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:20:54.983279+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:20:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:20:54.985311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:20:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:20:54.989853+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:20:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:20:54.993006+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55588 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55595 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:21:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:21:59.775517+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:21:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:21:59.778173+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:21:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:21:59.811097+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:22:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:22:16.627787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:22:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:22:16.630494+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:22:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:22:16.654198+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55608 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:22:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:22:39.698726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:22:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:22:39.702240+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:22:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:22:39.724087+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55621 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:23:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:23:01.310729+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:23:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:23:01.313523+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:23:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:23:01.337164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:23:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:23:13.033039+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:23:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:23:13.034521+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:23:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:23:13.058899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:23:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:23:17.980952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:23:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:23:17.983863+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:23:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:23:18.004633+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55639 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:23:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:23:45.605435+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:23:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:23:45.608856+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:23:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:23:45.630147+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:23:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:23:49.732617+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:23:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:23:49.734479+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:23:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:23:53.855316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:23:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:23:53.857870+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:55647 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:24:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:24:03.331783+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:24:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:24:03.334336+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:55654 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:24:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:24:52.088686+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:24:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:24:52.091774+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:24:52.126514+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T08:24:52.179683+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:24:52.190626+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-08T08:24:52.210005+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:24:52.214605+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:24:52.223282+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-08T08:24:52.232881+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:24:52.236316+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=floor_plan_prompt, repaired=0)"} INFO: 127.0.0.1:55662 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55662 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:24:55.351121+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_essence_extraction (Step shot_essence_extraction for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55662 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_essence_extraction?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:24:55.419650+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:24:55.430448+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-08T08:24:55.449284+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:24:55.453517+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:24:55.462145+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-08T08:24:55.472613+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:24:55.476010+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_essence_extraction, repaired=0)"} INFO: 127.0.0.1:55672 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55672 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:25:25.431273+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:scene_consistency (Step scene_consistency for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55672 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/scene_consistency?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:25:25.443934+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency started (run_id=5490d697-6d27-441c-a81b-8cfe2c2e6321, model=gemini-pro)"} {"timestamp": "2026-07-08T08:25:25.451126+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency: 20 scenes need LLM (workers=5, already_done=0, single_shot_skipped=10)"} 17:25:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:25:25.455549+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:25:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:25:25.458106+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:25:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:25:25.461172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:25:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini 17:25:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:25:25.463799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} {"timestamp": "2026-07-08T08:25:25.464872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:25:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:25:43.678726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:25:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:25:43.681371+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-08T08:25:43.697915+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S7: 1 fixed elements"} 17:25:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:25:43.700249+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:25:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:25:48.408552+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:25:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:25:48.410810+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-08T08:25:48.424666+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S8: 1 fixed elements"} 17:25:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:25:48.427510+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:25:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:25:54.570354+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:25:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:25:54.573147+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-08T08:25:54.589484+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S2: 2 fixed elements"} 17:25:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:25:54.592380+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55690 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:25:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:25:58.318091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:25:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:25:58.320660+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-08T08:25:58.336547+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S1: 2 fixed elements"} 17:25:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:25:58.339512+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:26:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:03.805794+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:03.809374+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-08T08:26:03.825655+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S10: 1 fixed elements"} 17:26:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:03.827823+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:26:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:07.245499+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:07.248514+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-08T08:26:07.264387+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S5: 2 fixed elements"} 17:26:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:07.267284+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:26:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:09.547380+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:09.550011+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-08T08:26:09.565146+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S11: 1 fixed elements"} 17:26:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:09.568035+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:26:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:19.355897+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:19.358453+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-08T08:26:19.375457+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S12: 1 fixed elements"} 17:26:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:19.377492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55703 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:26:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:37.506270+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:37.511804+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-08T08:26:37.526350+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S15: 1 fixed elements"} 17:26:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:37.528707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:26:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:38.508426+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:38.510781+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-08T08:26:38.524398+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S14: 1 fixed elements"} 17:26:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:38.526964+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:26:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:40.175027+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:40.177625+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-08T08:26:40.194973+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S13: 1 fixed elements"} 17:26:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:40.197202+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:26:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:43.335447+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:43.338801+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-08T08:26:43.352669+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S18: 1 fixed elements"} 17:26:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:43.355701+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55713 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:26:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:26:57.665992+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:26:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:26:57.669059+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-08T08:26:57.685863+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S19: 1 fixed elements"} 17:26:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:26:57.689129+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:27:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:27:14.021220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:27:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:27:14.024699+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-08T08:27:14.041452+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S21: 2 fixed elements"} 17:27:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:27:14.043718+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:27:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:27:14.854161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:27:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:27:14.856677+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-08T08:27:14.873411+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S23: 0 fixed elements"} 17:27:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T08:27:14.876616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 17:27:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:27:19.614832+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:27:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:27:19.618389+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-08T08:27:19.633391+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S20: 2 fixed elements"} 17:27:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:27:23.428737+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:27:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:27:23.431690+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-08T08:27:23.448552+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S25: 2 fixed elements"} INFO: 127.0.0.1:55725 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:27:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:27:27.326730+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:27:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:27:27.331482+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-08T08:27:27.345453+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S26: 1 fixed elements"} 17:27:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:27:36.036174+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:27:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:27:36.039567+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-08T08:27:36.053637+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S28: 1 fixed elements"} 17:27:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:27:54.249187+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:27:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T08:27:54.252190+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-08T08:27:54.267810+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S29: 1 fixed elements"} {"timestamp": "2026-07-08T08:27:54.281848+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-08T08:27:54.343948+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:27:54.353154+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-08T08:27:54.372287+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:27:54.376051+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:27:54.382234+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-08T08:27:54.390731+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:27:54.393241+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=scene_consistency, repaired=0)"} INFO: 127.0.0.1:55736 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55736 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:27:55.676456+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:floor_plan_overlay_payload (Step floor_plan_overlay_payload for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55736 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/floor_plan_overlay_payload?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:27:55.684563+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload started (run_id=1c8a2020-0508-4579-95bd-01b6820882c0, model=gpt)"} {"timestamp": "2026-07-08T08:27:55.703759+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T08:27:55.760079+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:27:55.770179+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-08T08:27:55.787248+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:27:55.791168+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:27:55.798117+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-08T08:27:55.807752+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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-08T08:27:55.809899+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=floor_plan_overlay_payload, repaired=0)"} INFO: 127.0.0.1:55754 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55754 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:28:25.767096+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:episode_reference_policy (Step episode_reference_policy for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55754 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/episode_reference_policy?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:28:25.778994+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy started (run_id=2cde1c76-dca8-4ba9-ae24-4fd041aa5f15, model=gpt)"} {"timestamp": "2026-07-08T08:28:25.794213+00:00", "level": "INFO", "logger": "app.core.steps.episode_reference_policy_step", "message": "episode_reference_policy: 43 entities — 22 text_only, 21 other"} {"timestamp": "2026-07-08T08:28:25.803489+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy completed (completed=43/43, failed=0)"} {"timestamp": "2026-07-08T08:28:25.865288+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:28:25.877145+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-08T08:28:25.898362+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:28:25.902662+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:28:25.911234+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-08T08:28:25.920608+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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', 'visual_continuity_anchor']"} {"timestamp": "2026-07-08T08:28:25.923845+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=episode_reference_policy, repaired=0)"} INFO: 127.0.0.1:55763 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55763 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:28:55.850716+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:visual_continuity_anchor (Step visual_continuity_anchor for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55763 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/visual_continuity_anchor?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:28:55.865844+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor started (run_id=04c8f65d-9945-48d0-8678-67632701e684, model=gpt)"} 17:28:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:28:55.878412+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:29:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:29:17.781412+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:29:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:29:17.783792+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:29:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:29:17.797031+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55774 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:29:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:29:38.117026+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:29:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:29:38.120047+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:29:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:29:38.132858+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:29:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:29:42.316706+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:29:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:29:42.318843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:29:42.341658+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor completed (completed=3/3, failed=0)"} {"timestamp": "2026-07-08T08:29:42.405719+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:29:42.418249+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-08T08:29:42.438326+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:29:42.442357+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:29:42.450643+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-08T08:29:42.461075+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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']"} {"timestamp": "2026-07-08T08:29:42.463406+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=visual_continuity_anchor, repaired=0)"} INFO: 127.0.0.1:55783 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55783 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:29:55.994492+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:floor_plan_render (Step floor_plan_render for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55783 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/floor_plan_render?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:29:56.006700+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render started (run_id=e93c3474-5cfc-47f5-b2ad-dac3bda0cd31, model=gpt)"} INFO: 127.0.0.1:55796 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55804 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55815 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55824 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55833 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55844 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55860 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55867 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55877 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55886 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55895 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55903 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55913 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55921 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55931 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55944 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:38:06.763597+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: registered 11 floor_plan ImageAssets"} {"timestamp": "2026-07-08T08:38:06.792295+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T08:38:06.863176+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:38:06.876554+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-08T08:38:06.899013+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:38:06.904225+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:38:06.914712+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-08T08:38:06.926651+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', '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']"} {"timestamp": "2026-07-08T08:38:06.929538+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=floor_plan_render, repaired=0)"} INFO: 127.0.0.1:55959 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55959 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:38:26.752567+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:base_location_dossier (Step base_location_dossier for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55959 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/base_location_dossier?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:38:26.763787+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier started (run_id=61c2b496-9794-4b0e-8b5e-d2c73deb5981, model=gpt)"} {"timestamp": "2026-07-08T08:38:26.785984+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T08:38:26.830068+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:38:26.837079+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-08T08:38:26.850974+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:38:26.854027+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:38:26.859355+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-08T08:38:26.864988+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt']"} {"timestamp": "2026-07-08T08:38:26.866422+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=base_location_dossier, repaired=0)"} INFO: 127.0.0.1:55966 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55966 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:38:56.837844+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:floor_plan_geometry_readback (Step floor_plan_geometry_readback for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:55966 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/floor_plan_geometry_readback?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:38:56.850942+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback started (run_id=d28892b5-03b2-4dbd-9ce6-d576e45ca4f5, model=gpt)"} 17:38:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:38:56.858194+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:39:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:39:21.061947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:39:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:39:21.082576+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55978 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:39:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:39:45.779584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:39:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:39:45.800970+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55986 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55996 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:40:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:40:27.472434+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:40:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:40:27.489238+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:40:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:40:42.636126+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:40:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:40:42.654678+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:40:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:40:54.032028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:40:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:40:54.050008+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56006 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56016 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:41:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:41:30.754801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:41:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:41:30.771465+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:41:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:41:51.001307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:41:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:41:51.016793+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56026 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:42:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:42:24.387069+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:42:24.403866+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56035 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:42:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:42:42.210505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:42:42.230247+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:42:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:42:56.228917+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:42:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:42:56.250452+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56046 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:43:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:43:08.553051+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-07-08T08:43:08.600439+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback completed (completed=11/1, failed=0)"} {"timestamp": "2026-07-08T08:43:08.654899+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:43:08.663073+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-08T08:43:08.682297+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:43:08.686046+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:43:08.693123+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-08T08:43:08.701871+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt']"} {"timestamp": "2026-07-08T08:43:08.704029+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=floor_plan_geometry_readback, repaired=0)"} INFO: 127.0.0.1:56089 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56089 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:43:27.221963+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:floor_plan_semantic_readback (Step floor_plan_semantic_readback for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56089 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/floor_plan_semantic_readback?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:43:27.229478+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback started (run_id=c615ed88-a810-41da-b5d3-f35635f8fbd4, model=gpt)"} {"timestamp": "2026-07-08T08:43:27.237872+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-08T08:43:27.299803+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:43:27.310725+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-08T08:43:27.332430+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:43:27.337173+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:43:27.347337+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-08T08:43:27.358481+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt']"} {"timestamp": "2026-07-08T08:43:27.361703+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=floor_plan_semantic_readback, repaired=0)"} INFO: 127.0.0.1:56098 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56098 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:43:57.316060+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_projection_card (Step shot_projection_card for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56098 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_projection_card?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:43:57.334849+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card started (run_id=65f5260b-093c-4a25-98d2-b2314258f267, model=gpt)"} {"timestamp": "2026-07-08T08:43:57.342475+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-08T08:43:57.398426+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:43:57.408144+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-08T08:43:57.426862+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:43:57.430807+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:43:57.437564+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-08T08:43:57.446164+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt']"} {"timestamp": "2026-07-08T08:43:57.449168+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_projection_card, repaired=0)"} INFO: 127.0.0.1:56107 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56107 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:44:27.398670+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:bg_space_partition (Step bg_space_partition for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56107 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/bg_space_partition?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:44:27.409195+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition started (run_id=3412285a-9752-4a13-9486-8b15cf424967, model=gpt)"} {"timestamp": "2026-07-08T08:44:27.416316+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-08T08:44:27.478963+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:44:27.489815+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-08T08:44:27.508443+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:44:27.511613+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:44:27.518742+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-08T08:44:27.527452+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt']"} {"timestamp": "2026-07-08T08:44:27.530412+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=bg_space_partition, repaired=0)"} INFO: 127.0.0.1:56117 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56117 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:44:57.487118+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:dwelling_zone_map (Step dwelling_zone_map for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56117 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/dwelling_zone_map?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:44:57.501622+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map started (run_id=a198690e-02d2-4d8d-81a8-64f874174e1a, model=gpt)"} {"timestamp": "2026-07-08T08:44:57.513626+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-08T08:44:57.570345+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:44:57.583847+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-08T08:44:57.610154+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:44:57.615069+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:44:57.625728+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-08T08:44:57.637705+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'shot_aware_bg_render_plan', 'background_prompt']"} {"timestamp": "2026-07-08T08:44:57.640589+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=dwelling_zone_map, repaired=0)"} INFO: 127.0.0.1:56126 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56126 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:45:27.579739+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_aware_bg_render_plan (Step shot_aware_bg_render_plan for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56126 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_aware_bg_render_plan?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:45:27.592428+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan started (run_id=57c72b12-f5ec-4593-8ae1-2ab52244b92e, model=gpt)"} 17:45:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:45:27.606623+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56135 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56145 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:46:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:46:55.127207+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:46:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:46:55.140076+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56154 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56162 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56173 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56182 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56197 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56206 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:49:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:49:33.274555+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:49:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:49:33.286878+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56217 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:50:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:50:17.171606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:50:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:50:17.181804+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56226 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56233 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56242 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:51:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:51:31.041241+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:51:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:51:31.054801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56249 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56260 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:52:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:52:33.198916+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:52:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:52:33.210097+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56273 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:53:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:53:21.190576+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:53:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:53:21.199386+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56282 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:53:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:53:51.761604+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:53:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:53:51.771093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56296 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:54:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:54:15.514899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:54:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:54:15.521849+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56305 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56313 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56323 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:55:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:55:49.702377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:55:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:55:49.714358+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56332 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:56:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:56:20.527292+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:56:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:56:20.532942+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56342 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56349 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56357 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:57:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:57:52.324714+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-07-08T08:57:52.350160+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan completed (completed=11/1, failed=0)"} {"timestamp": "2026-07-08T08:57:52.415396+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T08:57:52.425778+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-08T08:57:52.446940+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T08:57:52.450767+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T08:57:52.459822+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-08T08:57:52.472985+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'background_prompt']"} {"timestamp": "2026-07-08T08:57:52.475651+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_aware_bg_render_plan, repaired=0)"} INFO: 127.0.0.1:56370 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56370 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:57:58.661413+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:background_prompt (Step background_prompt for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56370 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/background_prompt?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T08:57:58.676701+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt started (run_id=267133d3-68c0-4968-8028-184829539a0a, model=gpt)"} 17:57:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:57:58.695605+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:57:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:57:58.696664+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:57:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:57:58.699272+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:57:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:57:58.700424+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:58:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:58:28.097874+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:58:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:58:28.100044+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:58:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:58:28.117988+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56385 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:58:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:58:31.954379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:58:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:58:31.957505+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:58:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:58:31.975030+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:58:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:58:38.009991+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:58:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:58:38.012301+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:58:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:58:38.026371+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:58:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:58:40.872173+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:58:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:58:40.875276+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:58:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:58:40.888729+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56402 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:59:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:59:05.234825+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:59:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:59:05.237679+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:59:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:59:05.252354+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:59:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:59:07.948460+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:59:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:59:07.951322+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:59:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:59:07.965415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:59:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:59:10.194528+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:59:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:59:10.196793+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:59:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:59:10.211609+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:59:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:59:18.845914+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:59:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:59:18.848719+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:59:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:59:18.863861+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56414 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 17:59:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:59:40.071651+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:59:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:59:40.073152+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:59:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:59:40.082001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:59:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:59:46.106584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:59:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:59:46.108568+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:59:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:59:46.120148+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:59:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:59:46.938390+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:59:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:59:46.940305+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T08:59:46.948168+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L09B02 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 17:59:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:59:46.952213+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 17:59:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T08:59:48.017082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 17:59:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T08:59:48.020718+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 17:59:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T08:59:48.034360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56426 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:00:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:00:12.283168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:00:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:00:12.285428+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:00:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:00:12.301434+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:00:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:00:20.592805+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:00:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:00:20.595522+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:00:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:00:20.610679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:00:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:00:20.712510+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:00:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:00:20.715804+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:00:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:00:20.731896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:00:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:00:26.216514+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:00:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:00:26.219233+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:00:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:00:26.232539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56438 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:00:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:00:47.355282+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:00:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:00:47.357713+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:00:47.368097+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L21B03 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 18:00:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:00:47.371845+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:00:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:00:54.727555+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:00:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:00:54.731019+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:00:54.741024+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L21B02 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 18:00:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:00:54.744127+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:00:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:00:55.370974+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:00:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:00:55.373116+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:00:55.381956+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L21B01 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 18:00:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:00:55.386502+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:00:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:00:58.678779+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:00:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:00:58.681488+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:00:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:00:58.696386+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56449 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:01:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:01:16.767455+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:01:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:01:16.770928+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:01:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:01:16.783922+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:01:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:01:26.330763+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:01:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:01:26.334182+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:01:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:01:26.349813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56460 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:01:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:01:31.135686+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:01:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:01:31.137622+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:01:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:01:32.571961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:01:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:01:32.574566+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:01:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:01:50.207243+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:01:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:01:50.210060+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:01:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:01:56.637959+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:01:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:01:56.642387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:01:56.668173+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt completed (completed=26/26, failed=0)"} {"timestamp": "2026-07-08T09:01:56.730969+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T09:01:56.741647+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-08T09:01:56.761855+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T09:01:56.765734+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T09:01:56.772623+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-08T09:01:56.783205+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout']"} {"timestamp": "2026-07-08T09:01:56.786448+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=background_prompt, repaired=0)"} INFO: 127.0.0.1:56469 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56469 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:01:59.062867+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:scene_detail (Step scene_detail for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56469 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/scene_detail?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:01:59.123158+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T09:01:59.135203+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-08T09:01:59.154190+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T09:01:59.158306+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T09:01:59.166046+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-08T09:01:59.176835+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout']"} {"timestamp": "2026-07-08T09:01:59.179493+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=-, repaired=0)"} {"timestamp": "2026-07-08T09:01:59.192772+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail started (run_id=c6e07c70-e80a-4496-81cb-9b7d5df54fc1, model=gemini-pro)"} {"timestamp": "2026-07-08T09:01:59.199480+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 54 shot_staging entries loaded"} {"timestamp": "2026-07-08T09:01:59.201224+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 19 scenes with fixed elements loaded"} {"timestamp": "2026-07-08T09:01:59.214994+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 37 shots mapped from 26 backgrounds"} {"timestamp": "2026-07-08T09:01:59.216756+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 37 shots mapped to bg_id from 26 backgrounds"} {"timestamp": "2026-07-08T09:01:59.222614+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 9 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-07-08T09:01:59.228866+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail: 30 segments → 54 tasks (shot-based, 0 edited skipped)"} 18:01:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:01:59.267882+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:01:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini 18:01:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:01:59.270913+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:01:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:01:59.273279+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:01:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:01:59.274571+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} {"timestamp": "2026-07-08T09:01:59.277054+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56482 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:02:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:02:30.188514+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:02:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:02:30.191695+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-08T09:02:30.214940+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-08T09:02:30.215135+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:02:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:02:30.233057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:02:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:02:38.537309+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:02:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:02:38.539497+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:02:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:02:38.577607+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:02:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:02:43.905291+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:02:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:02:43.908795+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-08T09:02:43.930794+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}"} 18:02:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:02:43.948580+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:02:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:02:46.005360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:02:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:02:46.006988+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:02:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:02:46.042035+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:02:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:02:51.519659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:02:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:02:51.522472+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:02:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:02:51.565765+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:02:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:02:56.706638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:02:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:02:56.709405+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:02:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:02:56.746150+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56497 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:03:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:03.387125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:03:03.389020+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:03:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:03:03.414728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:03:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:12.290459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:03:12.293339+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:03:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:03:12.335091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:03:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:18.436162+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:03:18.439184+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:03:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:03:18.479630+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:03:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:18.600290+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:03:18.602539+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-08T09:03:18.626758+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S5 shot11 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:03:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:03:18.639340+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:03:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:22.182270+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:03:22.184943+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:03:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:03:22.210396+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56509 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:03:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:39.841370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:03:39.845020+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-08T09:03:39.866037+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: 제거할 ID: L01 — retry"} 18:03:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:03:39.868526+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:03:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:46.609018+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:03:46.611692+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:03:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:03:46.649578+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:03:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:51.204647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:03:51.207342+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:03:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:03:51.231278+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:03:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:51.445236+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:03:51.447690+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:03:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:03:51.482445+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:03:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:54.267965+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:03:54.270919+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-08T09:03:54.296067+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}"} 18:03:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:03:54.314527+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:03:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:03:58.624362+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:03:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:03:58.626518+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:03:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:03:58.651620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56531 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:04:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:04:15.334664+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:04:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:04:15.337476+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:04:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:04:15.379934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:04:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:04:24.769604+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:04:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:04:24.772414+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-08T09:04:24.795854+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 11: 제거할 ID: L11 — retry"} 18:04:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:04:24.797977+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56541 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:04:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:04:33.307720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:04:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:04:33.310420+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-08T09:04:33.333475+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 10: C10 유효하지 않은 아웃룩 → O10로 교체"} 18:04:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:04:33.352050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:04:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:04:44.218613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:04:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:04:44.222309+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-08T09:04:44.245026+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S10 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-08T09:04:44.245268+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S10 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:04:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:04:44.257163+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:04:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:04:47.276820+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:04:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:04:47.278260+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:04:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:04:47.315431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:04:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:04:51.604084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:04:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:04:51.607756+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:04:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:04:51.631369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:04:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:04:54.190200+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:04:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:04:54.192992+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:04:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:04:54.216045+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56553 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:05:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:00.208544+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:05:00.210951+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-08T09:05:00.236969+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S11 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:05:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:05:00.255974+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:05:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:09.706082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:05:09.708702+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-08T09:05:09.731052+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 12: 제거할 ID: L05 — retry"} 18:05:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:05:09.733137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:05:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:16.474379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:05:16.477449+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-08T09:05:16.496950+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot14 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-08T09:05:16.497134+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot14 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:05:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:05:16.509415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:05:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:21.976208+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:05:21.979677+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:05:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:05:22.002439+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:05:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:26.485941+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:05:26.488758+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:05:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:05:26.524958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56564 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:05:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:34.094592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:05:34.097679+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-08T09:05:34.120687+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: 제거할 ID: L01 — retry"} 18:05:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:05:34.123477+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:05:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:34.336019+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:05:34.339260+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:05:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:05:34.352097+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:05:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:39.007232+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:05:39.010538+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:05:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:05:39.023454+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:05:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:42.844638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:05:42.847920+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-08T09:05:42.858580+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S13_Shot4: owned redraw repair 성공 — 1 redraw_violation 해소"} 18:05:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:05:42.874410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:05:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:50.872534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:05:50.875352+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-08T09:05:50.900429+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 12: retry 후에도 위반 {'L01'} — 강제 제거"} 18:05:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:05:50.918273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:05:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:51.448509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:05:51.451912+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:05:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:05:51.483898+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:05:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:05:56.621350+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:05:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:05:56.624976+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:05:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:05:56.647969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56576 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:06:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:06:01.485452+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:06:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:06:01.488223+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-08T09:06:01.508724+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: retry 후에도 위반 {'L11'} — 강제 제거"} {"timestamp": "2026-07-08T09:06:01.510579+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S13 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:06:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:06:01.520297+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:06:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:06:21.656212+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:06:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:06:21.659668+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-08T09:06:21.680592+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 14: 제거할 ID: L05 — retry"} 18:06:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:06:21.683338+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56586 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:06:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:06:41.685156+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:06:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:06:41.688047+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:06:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:06:41.728487+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:06:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:06:46.928064+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:06:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:06:46.931236+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-08T09:06:46.954403+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-08T09:06:46.954636+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}"} 18:06:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:06:46.973143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:06:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:06:47.521561+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:06:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:06:47.525756+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-08T09:06:47.547137+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 16: 제거할 ID: L13 — retry"} 18:06:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:06:47.549262+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56595 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:07:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:12.715525+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:07:12.717379+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:07:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:07:12.749450+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:07:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:13.995210+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:07:13.997702+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:07:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:07:14.032044+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:07:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:14.883462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:07:14.886138+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:07:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:07:14.934674+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:07:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:17.877213+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:07:17.879731+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:07:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:07:17.903657+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:07:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:17.959158+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:07:17.960975+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:07:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:07:17.978216+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:07:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:19.297864+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:07:19.301350+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:07:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:07:19.326375+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:07:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:21.058400+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:07:21.059736+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-08T09:07:21.077788+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 16: retry 후에도 위반 {'L13'} — 강제 제거"} 18:07:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:07:21.094090+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56611 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:07:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:46.007009+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:07:46.008274+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-08T09:07:46.039314+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C06', 'C08', 'L15'])"} 18:07:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:07:46.044042+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:07:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:50.845058+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:07:50.848247+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-08T09:07:50.871564+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 18: 제거할 ID: L05 — retry"} 18:07:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:07:50.874331+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:07:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:07:55.029292+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:07:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:07:55.032809+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-08T09:07:55.059828+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 19: 제거할 ID: L10 — retry"} 18:07:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:07:55.061933+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56627 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:08:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:05.822404+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:08:05.826114+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-08T09:08:05.847955+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S19 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:08:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:08:05.859479+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:08:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:08.960153+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:08:08.963211+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:08:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:08:08.986247+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:08:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:22.128723+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:08:22.131865+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-08T09:08:22.154852+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 19: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-07-08T09:08:22.155186+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S19 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:08:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:08:22.173078+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:08:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:23.381873+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:08:23.385131+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-08T09:08:23.408872+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-08T09:08:23.409094+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}"} {"timestamp": "2026-07-08T09:08:23.409397+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C06', 'C08', 'L15'])"} 18:08:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:08:23.421505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56638 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:08:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:31.287349+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:08:31.291134+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:08:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:08:31.315235+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:08:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:36.561305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:08:36.564507+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:08:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:08:36.607462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:08:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:44.051025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:08:44.053949+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-08T09:08:44.076984+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 20: 제거할 ID: L15 — retry"} 18:08:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:08:44.079194+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:08:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:45.550647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:08:45.553358+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:08:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:08:45.610900+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:08:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:49.640914+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:08:49.644339+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-08T09:08:49.665193+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: 제거할 ID: L13 — retry"} 18:08:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:08:49.667869+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:08:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:53.644824+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:08:53.647831+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:08:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:08:53.660881+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:08:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:08:58.728759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:08:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:08:58.731662+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:08:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:08:58.746583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56656 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:09:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:04.141914+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:09:04.144665+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-08T09:09:04.151632+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S5_Shot7: owned redraw repair 성공 — 1 redraw_violation 해소"} 18:09:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:04.166675+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:09:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:10.593002+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:10.595885+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-08T09:09:10.619600+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S22 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:09:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:09:10.631174+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:09:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:13.184848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:13.187727+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-08T09:09:13.211544+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 21: C08 유효하지 않은 아웃룩 → O09로 교체"} 18:09:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:09:13.223713+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:09:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:15.079810+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:15.082684+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-08T09:09:15.107495+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 20: retry 후에도 위반 {'L01'} — 강제 제거"} 18:09:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:15.126004+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:09:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:17.156641+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:09:17.159944+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:09:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:17.184341+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:09:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:20.840217+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:09:20.843518+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:09:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:20.866500+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:09:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:23.451832+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:23.455598+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:09:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:23.488828+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:09:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:23.860629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:23.863400+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:09:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:23.903481+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56670 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:09:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:42.696881+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:42.699093+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-08T09:09:42.721596+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 24: 제거할 ID: L01 — retry"} 18:09:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:42.724052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:09:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:48.715062+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:48.717723+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:09:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:09:48.753931+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:09:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:53.804408+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:53.807983+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-08T09:09:53.829985+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S25 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:09:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:09:53.842134+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:09:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:54.054784+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:54.058528+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-08T09:09:54.082275+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 25: 제거할 ID: L05 — retry"} 18:09:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:54.085130+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:09:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:57.661627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:09:57.663079+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-08T09:09:57.695353+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible prop target P01 (visible=['C08', 'P05'])"} 18:09:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:09:57.704627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:09:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:09:59.291369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:09:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:09:59.293987+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:09:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:09:59.307219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56685 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:10:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:00.804890+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:10:00.807483+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-08T09:10:00.819733+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C14 (visible=['C08'])"} 18:10:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:00.834006+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:05.458866+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:10:05.461813+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:10:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:10:05.475787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:10:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:10.054707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:10:10.057617+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-08T09:10:10.065836+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S25_Shot8: owned redraw repair 성공 — 1 redraw_violation 해소"} 18:10:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:10.079918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:12.896290+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:10:12.898177+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-08T09:10:12.914400+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 24: retry 후에도 위반 {'L02'} — 강제 제거"} 18:10:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:12.930305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:29.075707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:10:29.078159+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-08T09:10:29.098640+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 25: retry 후에도 위반 {'L01'} — 강제 제거"} 18:10:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:29.117048+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56697 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:10:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:31.573872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:10:31.577095+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-08T09:10:31.599295+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible prop target P01 (visible=['C08', 'P05'])"} 18:10:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:31.617339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:37.152085+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:10:37.153715+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-08T09:10:37.174894+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 26: 제거할 ID: L01 — retry"} 18:10:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:37.176139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:39.105546+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:10:39.108228+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-08T09:10:39.130650+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-08T09:10:39.130930+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C14 (visible=['C08'])"} 18:10:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:39.149120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:44.162969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:10:44.165260+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:10:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:10:44.199801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:10:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:50.180498+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:10:50.183344+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:10:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:50.203032+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:10:57.085969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:10:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:10:57.088459+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-08T09:10:57.112325+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 28: 제거할 ID: L01 — retry"} 18:10:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:10:57.117839+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56710 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:11:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:07.953616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:11:07.956665+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-08T09:11:07.980059+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}"} 18:11:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:11:07.994699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:11:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:13.888457+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:11:13.891179+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-08T09:11:13.915483+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S28 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-08T09:11:13.915775+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S28 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:11:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:11:13.928053+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:11:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:19.389837+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:11:19.393458+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:11:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:11:19.416427+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:11:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:21.573900+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:11:21.576696+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:56720 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:11:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:30.311908+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:11:30.315012+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-08T09:11:30.336046+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 28: retry 후에도 위반 {'L21'} — 강제 제거"} 18:11:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:35.358061+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:11:35.363450+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:11:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:11:35.395706+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:11:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:42.966666+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:11:42.968815+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-08T09:11:42.972037+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail_owned_judge] Tier 1 failed (LLM returned empty response for step=scene_detail_owned_judge, model=gpt-mini), trying sanitized input"} 18:11:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:11:42.977764+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:11:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:43.975731+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:11:43.977499+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-08T09:11:43.998330+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: 제거할 ID: L20 — retry"} 18:11:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-08T09:11:44.001598+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:11:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:11:53.474735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:11:53.478237+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:56727 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:12:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:12:01.538293+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:12:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:12:01.541164+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:12:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:12:01.574353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:12:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:12:06.830991+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:12:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:12:06.833216+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:12:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:12:13.431654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:12:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-08T09:12:13.435209+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-08T09:12:13.457298+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-07-08T09:12:13.457635+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-08T09:12:13.457742+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S29 shot8 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-08T09:12:13.470594+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 37 shots mapped from 26 backgrounds"} {"timestamp": "2026-07-08T09:12:13.471865+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 54 shot_staging entries loaded"} {"timestamp": "2026-07-08T09:12:13.477393+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 54 shot_staging entries loaded"} {"timestamp": "2026-07-08T09:12:13.478094+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 19 scenes with fixed elements loaded"} {"timestamp": "2026-07-08T09:12:13.485616+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 37 shots mapped from 26 backgrounds"} {"timestamp": "2026-07-08T09:12:13.486362+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 37 shots mapped to bg_id from 26 backgrounds"} {"timestamp": "2026-07-08T09:12:13.493451+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 9 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-07-08T09:12:13.619360+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C06', 'C08', 'L15'])"} {"timestamp": "2026-07-08T09:12:13.654730+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible prop target P01 (visible=['C08', 'P05'])"} {"timestamp": "2026-07-08T09:12:13.657958+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C14 (visible=['C08'])"} {"timestamp": "2026-07-08T09:12:13.712594+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail completed (completed=54/54, failed=0)"} {"timestamp": "2026-07-08T09:12:13.749518+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T09:12:13.794830+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 172 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-08T09:12:13.805629+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-08T09:12:13.818644+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T09:12:13.821188+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T09:12:13.828296+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 30 entities updated, 30 total short_ids found"} {"timestamp": "2026-07-08T09:12:13.840161+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout']"} {"timestamp": "2026-07-08T09:12:13.841597+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=scene_detail, repaired=0)"} INFO: 127.0.0.1:56735 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56735 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:12:29.998330+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:shot_dependency_t2i (Step shot_dependency_t2i for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56735 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/shot_dependency_t2i?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:12:30.010189+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i started (run_id=57f80fad-0065-4da0-abda-6fb4cd40d70d, model=gpt-mini)"} 18:12:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:12:30.028394+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:12:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:12:37.951419+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:12:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:12:37.953955+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-08T09:12:37.968894+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L01 (2 shots) — LLM OK"} 18:12:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:12:37.972302+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:12:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:12:45.692163+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:12:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:12:45.694291+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-08T09:12:45.711753+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L02 (2 shots) — LLM OK"} 18:12:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:12:45.714834+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:12:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:12:56.447346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:12:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:12:56.450264+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-08T09:12:56.466763+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L04 (4 shots) — LLM OK"} 18:12:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:12:56.469934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56752 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56762 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:13:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:13:38.708738+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:13:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:13:38.711683+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-08T09:13:38.729036+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L05 (13 shots) — LLM OK"} 18:13:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:13:38.731776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:13:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:13:48.958776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:13:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:13:48.962156+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-08T09:13:48.975660+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L06 (3 shots) — LLM OK"} 18:13:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:13:48.977817+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:13:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:13:54.881806+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:13:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:13:54.883997+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-08T09:13:54.895954+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L07 (2 shots) — LLM OK"} 18:13:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:13:54.898118+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:13:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:13:59.929511+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:13:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:13:59.932383+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-08T09:13:59.948213+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L09 (2 shots) — LLM OK"} 18:13:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:13:59.951237+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56781 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:14:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:14:09.494423+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:14:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:14:09.497227+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-08T09:14:09.513837+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L11 (4 shots) — LLM OK"} 18:14:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:14:09.516728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:14:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:14:16.011091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:14:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:14:16.014790+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-08T09:14:16.029147+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L12 (2 shots) — LLM OK"} 18:14:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:14:16.031238+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:14:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:14:25.993238+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:14:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:14:25.995294+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-08T09:14:26.006447+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L13 (3 shots) — LLM OK"} 18:14:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:14:26.008787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56791 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:14:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:14:34.005634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:14:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:14:34.007511+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-08T09:14:34.020190+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L10 (2 shots) — LLM OK"} 18:14:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:14:34.022735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:14:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:14:40.632082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:14:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:14:40.635867+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-08T09:14:40.650708+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L15 (2 shots) — LLM OK"} 18:14:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:14:40.654201+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:14:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:14:46.183173+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:14:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:14:46.186811+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-08T09:14:46.203351+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L16 (2 shots) — LLM OK"} 18:14:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:14:46.205476+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:14:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:14:55.489389+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:14:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:14:55.492037+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-08T09:14:55.508162+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L18 (3 shots) — LLM OK"} 18:14:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:14:55.510827+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56804 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:15:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:15:06.969482+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:15:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:15:06.971315+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-08T09:15:06.981836+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L21 (3 shots) — LLM OK"} 18:15:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-08T09:15:06.984729+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:15:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:15:16.856893+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:15:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-08T09:15:16.859870+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-08T09:15:16.874654+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L20 (3 shots) — LLM OK"} {"timestamp": "2026-07-08T09:15:16.877031+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: 25/54 linked (LLM-based)"} {"timestamp": "2026-07-08T09:15:16.894612+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i completed (completed=54/54, failed=0)"} {"timestamp": "2026-07-08T09:15:16.947888+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T09:15:17.016246+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 172 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-08T09:15:17.033677+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-08T09:15:17.055341+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T09:15:17.057881+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T09:15:17.069031+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 30 total short_ids found"} {"timestamp": "2026-07-08T09:15:17.074122+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['t2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout']"} {"timestamp": "2026-07-08T09:15:17.075762+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=shot_dependency_t2i, repaired=0)"} INFO: 127.0.0.1:56810 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56810 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:15:28.253203+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:t2i_review (Step t2i_review for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56810 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/t2i_review?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:15:28.261650+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review started (run_id=8feffe53-a692-4ff4-b74a-c38763b95541, model=gpt)"} 18:15:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:15:28.288877+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56821 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:16:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:16:07.137727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:16:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:16:07.140042+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:16:07.153288+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L04 [proper_noun_translated]: 원문 제목의 지명 고유명사 '인천'이 T2I에서 일반적인 'west coast city of South Korea'로 처리되어 고유 지명 뉘앙스"} {"timestamp": "2026-07-08T09:16:07.153527+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L15 [awkward_translation]: 원문의 자연스러운 시설 명칭 '총무과/보안실'이 'general affairs and security room'으로 직역되어 영어 표현이 다소 "} {"timestamp": "2026-07-08T09:16:07.153608+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L16 [awkward_translation]: 원문의 문화적으로 자연스러운 공간명 'PC방'이 'cybercafe'로 번역되어 한국식 PC방의 현대적 게임 좌석 공간 뉘앙스가 약해지고 표현이"} 18:16:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:16:07.158617+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56832 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:16:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:16:34.153374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:16:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:16:34.156590+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:16:34.170657+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 1/6: 10 items, 1 issues"} 18:16:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:16:34.172809+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:16:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:16:49.477319+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:16:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:16:49.479814+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:16:49.493789+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 2/6: 10 items, 0 issues"} 18:16:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:16:49.495854+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56845 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:17:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:17:14.658426+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:17:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:17:14.661084+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:17:14.675464+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 3/6: 10 items, 0 issues"} 18:17:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:17:14.677535+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56852 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:17:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:17:51.454067+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:17:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:17:51.455633+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:17:51.465224+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 4/6: 10 items, 0 issues"} 18:17:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:17:51.468852+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56861 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:18:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:18:04.564920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:18:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:18:04.567751+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:18:04.582219+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 5/6: 10 items, 0 issues"} 18:18:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:18:04.585100+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:18:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:18:17.680525+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:18:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:18:17.682920+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:18:17.698586+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 6/6: 4 items, 0 issues"} {"timestamp": "2026-07-08T09:18:17.699073+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review v1: entity 3 diagnostics, scene 1 diagnostics (mutation=0)"} {"timestamp": "2026-07-08T09:18:17.713944+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-08T09:18:17.773036+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T09:18:17.839409+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 172 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-08T09:18:17.857807+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-08T09:18:17.878107+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T09:18:17.881027+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T09:18:17.890365+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 30 total short_ids found"} {"timestamp": "2026-07-08T09:18:17.894984+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['zoom_continuity_anchor', 'outdoor_site_layout']"} {"timestamp": "2026-07-08T09:18:17.896854+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=t2i_review, repaired=0)"} INFO: 127.0.0.1:56871 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56871 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:18:28.517220+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:zoom_continuity_anchor (Step zoom_continuity_anchor for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:56871 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/zoom_continuity_anchor?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:18:28.529547+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor started (run_id=c9f69a8a-7938-427a-bc1b-2bf29807dd4d, model=gpt)"} 18:18:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:18:28.557577+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:18:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:18:55.564125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:18:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:18:55.566767+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:18:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:18:55.582600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56891 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:19:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:19:19.428341+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:19:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:19:19.429592+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:19:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:19:19.439539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:19:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:19:25.268715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:19:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:19:25.272168+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:19:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:19:25.280934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56901 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56912 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:20:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:20:15.736929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:20:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:20:15.740338+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:20:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:20:15.754489+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:20:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:20:23.491534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:20:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:20:23.494748+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:20:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:20:23.505436+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56921 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56929 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:21:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:21:28.189315+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:21:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:21:28.191975+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:21:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:21:28.204970+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56938 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:21:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:21:44.191145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:21:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:21:44.193960+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:21:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:21:44.205811+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56948 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:21:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:21:58.804722+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:21:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:21:58.806318+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:21:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:21:58.814166+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56958 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:22:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:22:33.566633+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:22:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:22:33.569329+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:22:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:22:33.583752+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:22:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:22:41.704177+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:22:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:22:41.707045+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:22:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:22:41.715351+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:22:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:22:53.733307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:22:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:22:53.735733+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:22:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:22:53.745803+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56970 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56980 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:23:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:23:36.322550+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:23:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:23:36.325300+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:23:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:23:36.337682+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:23:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:23:45.233354+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:23:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:23:45.235225+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:23:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:23:45.243682+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:23:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:23:53.759003+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:23:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:23:53.761571+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:23:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:23:53.771918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56998 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57005 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:24:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:24:29.165811+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:24:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:24:29.169254+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:24:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:24:29.179616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:24:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:24:43.729298+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:24:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:24:43.731816+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:24:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:24:43.741986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:24:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:24:49.461561+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:24:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:24:49.463465+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-08T09:24:49.482579+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor completed (completed=6/6, failed=0)"} {"timestamp": "2026-07-08T09:24:49.544778+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T09:24:49.619003+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 172 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-08T09:24:49.639399+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-08T09:24:49.658956+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T09:24:49.661662+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T09:24:49.672602+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 30 total short_ids found"} {"timestamp": "2026-07-08T09:24:49.677513+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d5c3bffb-2ae7-4446-a17d-2221fea713b5 status NOT advanced — incomplete steps: ['outdoor_site_layout']"} {"timestamp": "2026-07-08T09:24:49.679128+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=zoom_continuity_anchor, repaired=0)"} INFO: 127.0.0.1:57018 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57018 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:24:59.113195+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:1b4a975b-f4e5-46d7-8b28-876071d19907:d5c3bffb-2ae7-4446-a17d-2221fea713b5:outdoor_site_layout (Step outdoor_site_layout for d5c3bffb-2ae7-4446-a17d-2221fea713b5)"} INFO: 127.0.0.1:57018 - "POST /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps/outdoor_site_layout?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-08T09:24:59.130654+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout started (run_id=2dffee0e-5b0c-48ab-9ce6-9d7b080b6a59, model=gpt)"} 18:24:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:24:59.161388+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57029 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:25:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:25:30.136754+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:25:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:25:30.139035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:25:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:25:30.164014+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:25:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:25:52.097671+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:25:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:25:52.100182+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:25:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:25:52.112511+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57039 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:26:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:26:02.241057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:26:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:26:02.244154+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57048 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57057 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57064 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57074 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57087 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57103 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57110 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57121 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57128 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57137 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57146 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57156 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57163 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57172 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57184 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57203 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57212 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57222 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:35:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:35:30.091421+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57230 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:35:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:35:45.287965+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:35:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:35:45.290535+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:35:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:35:45.318043+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57239 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:36:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:36:07.669086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:36:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:36:07.671579+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57251 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57262 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57271 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57281 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57291 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57307 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57314 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57325 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57334 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57343 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57350 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57359 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57366 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57376 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57388 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57405 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57412 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57421 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:45:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:45:23.187352+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57429 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57438 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:46:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:46:17.987798+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:46:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:46:17.990540+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:46:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:46:18.016216+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57448 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:46:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:46:53.597775+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:46:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:46:53.600661+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:46:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:46:53.630823+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:46:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:46:59.475165+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:46:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:46:59.476517+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:46:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:46:59.492263+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57460 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:47:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:47:10.119650+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:47:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:47:10.121654+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:47:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:47:10.134612+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:47:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:47:19.802374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:47:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:47:19.805294+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57466 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57478 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57491 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57507 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57516 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57528 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57535 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57543 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57550 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57561 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57570 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57580 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57590 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57606 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57613 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57623 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57632 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57641 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57649 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57658 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57665 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:57:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:57:49.592384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57676 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57688 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:58:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:58:42.041415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:58:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:58:42.044042+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:58:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:58:42.069143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:58:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:58:55.217518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:58:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:58:55.220919+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:58:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:58:55.247763+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:59:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:59:02.357406+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:59:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:59:02.360236+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57710 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:59:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:59:10.065152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57717 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 18:59:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:59:51.592327+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:59:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:59:51.595329+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 18:59:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T09:59:51.620988+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 18:59:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T09:59:59.171093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:59:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T09:59:59.173531+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57731 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 19:00:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T10:00:09.264752+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57739 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 19:00:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T10:00:41.257588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:00:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T10:00:41.262483+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 19:00:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T10:00:41.284967+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 19:00:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T10:00:52.787236+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:00:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T10:00:52.790475+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 19:00:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T10:00:52.803191+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57753 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 19:01:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T10:01:06.710643+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:01:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T10:01:06.714095+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57764 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57774 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57783 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57792 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57802 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57819 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57828 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57838 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57844 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57853 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57862 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57872 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57881 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57890 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57901 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57917 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57924 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57936 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 19:10:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T10:10:12.041425+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 19:10:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T10:10:25.667504+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:10:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T10:10:25.670541+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 19:10:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-08T10:10:25.696378+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57947 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK 19:10:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-08T10:10:37.322133+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:10:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-08T10:10:37.323861+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57958 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57967 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57976 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57983 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57992 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58005 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58015 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58029 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58038 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58044 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58054 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58064 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58074 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58081 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58089 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58100 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58111 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-08T10:19:18.417117+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout completed (completed=8/8, failed=0)"} {"timestamp": "2026-07-08T10:19:18.455866+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 42 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-08T10:19:18.504424+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 172 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-08T10:19:18.523854+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-08T10:19:18.541470+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 13 outlooks + 13 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-08T10:19:18.544014+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['가죽자켓2']"} {"timestamp": "2026-07-08T10:19:18.552291+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 30 total short_ids found"} {"timestamp": "2026-07-08T10:19:18.558521+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d5c3bffb, step=outdoor_site_layout, repaired=0)"} INFO: 127.0.0.1:58130 - "GET /api/v1/projects/1b4a975b-f4e5-46d7-8b28-876071d19907/episodes/d5c3bffb-2ae7-4446-a17d-2221fea713b5/steps HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [38233]