/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 [65400] INFO: Waiting for application startup. {"timestamp": "2026-07-09T19:37:25.014359+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:53836 - "GET /health HTTP/1.1" 404 Not Found {"timestamp": "2026-07-09T19:37:52.059108+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 1 key(s) loaded"} INFO: 127.0.0.1:53846 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:53868 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:39:09.340575+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 04:39:09 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-07-09T19:39:09.357471+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-07-09T19:39:09.357721+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 8 deployments (1 Gemini keys, OpenAI=True)"} 04:39:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T19:39:09.370443+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 04:39:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:39:15.541683+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:39:15 - 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=06a4ff8e-38b4-7c5d-8000-25d3294ec1c6&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. {"timestamp": "2026-07-09T19:39:15.547040+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:53868 - "POST /api/v1/projects/ HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:39:15.561633+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "creator_corrections updated: project=da87ee4a-b20b-45ab-ba40-f30d1166f6bd entries=1 (by admin)"} INFO: 127.0.0.1:53868 - "PUT /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/creator-corrections HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:39:15.672268+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "Planning doc uploaded for project da87ee4a: 20566 chars, 16 pages"} INFO: 127.0.0.1:53868 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/planning-doc HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:39:15.711592+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=da87ee4a): PDF multimodal (1504329 bytes)"} INFO: 127.0.0.1:53868 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/ HTTP/1.1" 200 OK 04:39:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:39:15.713254+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:53868 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/creator-corrections HTTP/1.1" 200 OK INFO: 127.0.0.1:53878 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:53878 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53887 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:53887 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:40:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:40:04.791707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:40:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:40:04.806479+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-09T19:40:04.821494+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=da87ee4a) done: 9 characters, 5 relationships, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'], job_id=e20070e9a2d44325afc79ea03504a42b"} INFO: 127.0.0.1:53896 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:53896 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53905 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:53905 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53918 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:53918 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:41:09.040177+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:planning_doc_analysis (Step planning_doc_analysis for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:53918 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/planning_doc_analysis?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:41:09.047787+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis started (run_id=982a1143-977d-4e31-a15c-0d81be320cac, model=gemini-lite)"} {"timestamp": "2026-07-09T19:41:09.050001+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: project-level checkpoint mirror (project=da87ee4a, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'])"} {"timestamp": "2026-07-09T19:41:09.055619+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T19:41:09.055704+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-09T19:41:09.055913+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-09T19:41:09.063210+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-09T19:41:09.068334+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['text_cleanup', 'scene_segmentation', 'episode_summary', 'visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:41:09.070461+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=planning_doc_analysis, repaired=0)"} INFO: 127.0.0.1:53925 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53925 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:41:39.099897+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:text_cleanup (Step text_cleanup for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:53925 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/text_cleanup?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:41:39.107658+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=1833d03e-72e8-4ea0-b5af-933781cd25cc, model=gemini-lite)"} {"timestamp": "2026-07-09T19:41:39.114282+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes, 18 pages) → model=gemini-lite"} 04:41:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:41:39.118145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:41:39 - 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-09T19:41:39.122072+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Warning: Setting temperature < 1.0 for Gemini 3 models (gemini-3.5-flash) can cause infinite loops, degraded reasoning performance, and failure on complex tasks. Strongly recommended to use temperature = 1.0 (default)."} INFO: 127.0.0.1:53964 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53971 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53985 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:43:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:43:21.305661+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:43:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:43:21.313756+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-09T19:43:21.315158+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: extracted 9300 chars from 금월도 1부_260226(최종수정본).pdf"} {"timestamp": "2026-07-09T19:43:21.328720+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T19:43:21.329248+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-09T19:43:21.329991+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-09T19:43:21.339915+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-09T19:43:21.353622+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_segmentation', 'episode_summary', 'visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:43:21.358077+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=text_cleanup, repaired=0)"} INFO: 127.0.0.1:53993 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53993 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:43:39.330007+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_segmentation (Step scene_segmentation for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:53993 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_segmentation?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:43:39.340365+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation started (run_id=5ce9f6a6-36a6-4c63-988d-66eb076bbfde, model=gemini-flash)"} 04:43:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:43:39.344359+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:43:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:43:54.699381+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:43:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:43:54.701954+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-09T19:43:54.709605+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "Segmentation attempt 1: pattern=S#\\d+\\.\\s*[^/\\n]+?\\s*/\\s*(?:해\\s*질\\s*무렵|N|D|실내|동틀무렵|소나기), matched=30, estimated=30"} {"timestamp": "2026-07-09T19:43:54.725353+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T19:43:54.725732+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-09T19:43:54.726398+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-09T19:43:54.735322+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-09T19:43:54.746642+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['episode_summary', 'visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:43:54.751456+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_segmentation, repaired=0)"} INFO: 127.0.0.1:54012 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54012 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:44:09.400798+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:episode_summary (Step episode_summary for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54012 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/episode_summary?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:44:09.406029+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary started (run_id=52020655-437b-4f7a-aa9e-1bd1f4909af7, model=gpt-mini)"} 04:44:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:44:09.409128+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:44:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:44:19.214218+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:44:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:44:19.215800+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-09T19:44:19.239176+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T19:44:19.239652+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-09T19:44:19.240890+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-09T19:44:19.246570+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-09T19:44:19.254285+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:44:19.257250+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=episode_summary, repaired=0)"} INFO: 127.0.0.1:54021 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54021 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:44:39.482154+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:visual_world_rules (Step visual_world_rules for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54021 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/visual_world_rules?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:44:39.492196+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules started (run_id=aa8136d8-e7ae-46af-abc8-506626d7cc36, model=gpt)"} 04:44:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T19:44:39.509112+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54030 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:45:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:45:35.544535+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:45:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T19:45:35.546917+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T19:45:35.557898+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "VisualWorldRulesStep: 11 rules, era=현대, 2020년대 중반, region=대한민국 서해안권의 도시·항구·해상 및 가상의 고립 섬 권역, planning_doc=True"} {"timestamp": "2026-07-09T19:45:35.569036+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T19:45:35.569394+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-09T19:45:35.570145+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-09T19:45:35.579354+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-09T19:45:35.589616+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:45:35.593682+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=visual_world_rules, repaired=0)"} INFO: 127.0.0.1:54038 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54038 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:45:39.597573+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_save (Step scene_save for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54038 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_save?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:45:39.608604+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save started (run_id=aa3fb5fb-8d19-4e35-9936-5f98395b91e4, model=-)"} {"timestamp": "2026-07-09T19:45:39.619118+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T19:45:39.619428+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-09T19:45:39.620090+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-09T19:45:39.628480+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-09T19:45:39.638682+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:45:39.642495+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_save, repaired=0)"} INFO: 127.0.0.1:54047 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54047 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:46:09.675361+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_character_list (Step entity_character_list for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54047 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_character_list?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:46:09.685852+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list started (run_id=0abd83b0-62bc-4226-9899-0197124aacb6, model=gemini-pro)"} 04:46:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:46:09.695089+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54057 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:47:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:02.915402+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:47:02.918614+00: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-09T19:47:02.929137+00:00", "level": "INFO", "logger": "app.core.steps.character_list_step", "message": "entity_character_list: 6 characters extracted"} {"timestamp": "2026-07-09T19:47:02.941996+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list completed (completed=6/6, failed=0)"} {"timestamp": "2026-07-09T19:47:02.942362+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-09T19:47:02.943131+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-09T19:47:02.953473+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-09T19:47:02.968225+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:47:02.974040+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_character_list, repaired=0)"} INFO: 127.0.0.1:54069 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54069 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:47:09.806891+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_summary (Step scene_summary for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54069 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_summary?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:47:09.817880+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary started (run_id=3b0db4c8-5287-4d49-9062-9d4f86e47e01, model=gpt-mini)"} 04:47:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:09.828662+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:09.831172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:09.833719+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:09.834400+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:09.835429+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:14.087554+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:14.089819+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:14.098275+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:14.669889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:14.672450+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:14.682227+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:15.146371+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:15.148302+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:15.155844+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:15.352801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:15.354016+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:15.366827+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:15.820945+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:15.823315+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:15.833755+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:19.474274+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:19.476809+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:19.486620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:20.116018+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:20.118400+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:20.129196+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:20.781629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:20.784153+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:20.794210+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:21.175346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:21.177909+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:21.186539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:21.273138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:21.275537+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:21.288355+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:26.619871+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:26.622373+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:26.632216+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:26.677681+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:26.680398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:26.688195+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:27.155651+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:27.158275+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:27.163172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:27.167320+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:27.173893+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:27.175699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:27.442633+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:27.445147+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:27.454568+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:30.319990+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:30.322583+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:30.332370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:30.897814+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:30.899136+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:30.903409+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:32.053505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:32.056060+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:32.065231+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:32.249566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:32.251752+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:32.261894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:32.445530+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:32.446930+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:32.452793+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:35.506776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:35.509284+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:35.518755+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:35.801205+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:35.805219+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:35.814028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:36.553340+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:36.555633+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:36.562026+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:36.939073+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:36.941431+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:36.951369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 04:47:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:37.223832+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:37.225834+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T19:47:37.235242+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:54101 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:47:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:40.685438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:40.688776+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:41.166753+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:41.169303+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:41.260529+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:41.262986+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:41.360745+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:41.362771+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 04:47:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:47:41.556139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:47:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T19:47:41.558060+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-09T19:47:41.563798+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "SceneSummaryStep: 30/30 scenes summarized (0 failed)"} {"timestamp": "2026-07-09T19:47:41.577791+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T19:47:41.578115+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-09T19:47:41.579172+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-09T19:47:41.588146+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-09T19:47:41.598396+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:47:41.601917+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_summary, repaired=0)"} INFO: 127.0.0.1:54112 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54112 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:48:09.944303+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:beat_extract (Step beat_extract for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54112 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/beat_extract?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:48:09.960572+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract started (run_id=7dfcc049-a519-41bd-9aec-d11559f54235, model=gemini-pro)"} {"timestamp": "2026-07-09T19:48:09.962448+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 6 characters injected"} {"timestamp": "2026-07-09T19:48:09.969440+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 30 scenes → 4 bundles"} 04:48:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:48:09.975620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:48:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:48:09.979691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:48:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:48:09.982152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:48:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:48:09.984047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:48:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:48:36.054187+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:48:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:48:36.056773+00: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-09T19:48:36.069859+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 4 (scenes 28~30): 3 scenes, 8 beats"} INFO: 127.0.0.1:54123 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:48:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:48:48.907412+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:48:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:48:48.911009+00: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-09T19:48:48.923414+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 3 (scenes 19~27): 9 scenes, 17 beats"} 04:48:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:48:57.926052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:48:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:48:57.928595+00: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-09T19:48:57.943385+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~11): 11 scenes, 17 beats"} 04:48:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:48:58.798668+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:48:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:48:58.799598+00: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-09T19:48:58.812606+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 2 (scenes 12~18): 7 scenes, 18 beats"} {"timestamp": "2026-07-09T19:48:58.812991+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 30 scenes, 60 beats"} {"timestamp": "2026-07-09T19:48:58.822609+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T19:48:58.822873+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-09T19:48:58.823903+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-09T19:48:58.830353+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-09T19:48:58.841379+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:48:58.845135+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=beat_extract, repaired=0)"} INFO: 127.0.0.1:54138 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54138 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:49:10.056326+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_extract (Step shot_extract for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54138 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_extract?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:49:10.066419+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract started (run_id=225c2b34-e04d-4312-8bef-c7a96c1adb60, model=gemini-pro)"} {"timestamp": "2026-07-09T19:49:10.068288+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: t2i_context injected (528 chars)"} {"timestamp": "2026-07-09T19:49:10.068556+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 6 characters injected as enum"} {"timestamp": "2026-07-09T19:49:10.073547+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-09T19:49:10.073994+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 30 scenes → 4 bundles (sequential)"} 04:49:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:49:10.076393+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54147 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54160 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:50:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:50:30.271942+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:50:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:50:30.274517+00: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-09T19:50:30.292803+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 1 (scenes 1~11): 11 scenes, 66 shots"} 04:50:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:50:30.295749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54168 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54176 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54183 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:51:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:51:41.820309+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:51:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:51:41.822954+00: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-09T19:51:41.840092+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 2 (scenes 12~18): 7 scenes, 59 shots"} 04:51:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:51:41.843235+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54193 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:52:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:52:52.782783+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:52:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:52:52.785410+00: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-09T19:52:52.802807+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 3 (scenes 19~27): 9 scenes, 67 shots"} 04:52:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:52:52.805833+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54219 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:53:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:53:23.395580+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:53:23.398351+00: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-09T19:53:23.414478+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 4 (scenes 28~30): 3 scenes, 23 shots"} {"timestamp": "2026-07-09T19:53:23.415004+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 30 scenes, 215 shots"} {"timestamp": "2026-07-09T19:53:23.430250+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T19:53:23.430589+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-09T19:53:23.431712+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-09T19:53:23.441465+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-09T19:53:23.451605+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:53:23.455261+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_extract, repaired=0)"} INFO: 127.0.0.1:54225 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54225 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:53:40.509058+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_validator (Step shot_validator for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54225 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_validator?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:53:40.518893+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator started (run_id=550965eb-3527-4c41-8df2-edb1fc364c6b, model=gemini-pro)"} {"timestamp": "2026-07-09T19:53:40.530794+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."} 04:53:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:53:40.538421+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:53:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:53:40.540648+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:53:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:53:40.543210+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:53:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:53:40.544612+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:53:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:53:46.193121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:53:46.195694+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:53:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:53:46.209738+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:53:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:53:53.575764+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:53:53.578150+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:53:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:53:53.591836+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:53:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:53:53.859071+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:53:53.861474+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:53:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:53:53.875461+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:53:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:53:57.313476+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:53:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:53:57.316118+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:53:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:53:57.329806+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:03.816619+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:03.819029+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:03.833708+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:04.200546+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:04.202925+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:04.216745+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:06.100112+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:06.102685+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:06.117714+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54249 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:54:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:12.422952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:12.425548+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:12.439661+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:18.472263+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:18.474721+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:18.488797+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:24.713653+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:24.716203+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:24.731384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:25.576402+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:25.578911+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:25.597834+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:28.656465+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:28.658765+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:28.672509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54259 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:54:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:43.319237+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:43.321481+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:43.337021+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:43.995233+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:43.997968+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:44.019397+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:46.973067+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:46.975798+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:46.991268+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:47.643823+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:47.646333+00: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-09T19:54:47.649476+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"} 04:54:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:47.654431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:48.413025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:48.415467+00: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-09T19:54:48.417200+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"} 04:54:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T19:54:48.420966+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 04:54:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:52.345285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:52.347901+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:52.364057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:54:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:54:54.091171+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:54:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:54:54.093802+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:54:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:54:54.122551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:06.397111+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:06.399702+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:06.416578+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:07.052417+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T19:55:07.054864+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 04:55:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:07.069908+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:09.954913+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:09.957338+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:09.972302+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54277 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:55:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:16.679718+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:16.682252+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:16.696505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:17.058363+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:17.060789+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:17.074776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:17.339849+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:17.342210+00: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-09T19:55:17.345460+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"} 04:55:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:17.350255+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:18.104755+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:18.107188+00: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-09T19:55:18.110473+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"} 04:55:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T19:55:18.114420+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 04:55:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:20.732049+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:20.734636+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:20.750226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:22.772165+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:22.774732+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:22.789168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:32.545017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:32.547569+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:32.563900+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:55:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:37.577331+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:37.580401+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:55:37.589556+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54291 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:55:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:42.020326+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:42.021946+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:48.397516+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T19:55:48.400041+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 04:55:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:52.116122+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:52.118671+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 04:55:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:55:54.240704+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:55:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:55:54.243342+00: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-09T19:55:54.255260+00:00", "level": "INFO", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: 30 scenes, 215 shots total, 27 revised, 0 failed"} {"timestamp": "2026-07-09T19:55:54.272373+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T19:55:54.272737+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-09T19:55:54.276053+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-09T19:55:54.284967+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-09T19:55:54.295286+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:55:54.299153+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_validator, repaired=0)"} INFO: 127.0.0.1:54300 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54300 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:56:10.768491+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_all_character (Step entity_all_character for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54300 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_all_character?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:56:10.779736+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character started (run_id=3a6d6a6d-a464-489c-9129-c5c4cf931bea, model=gemini-pro)"} 04:56:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T19:56:10.787545+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54312 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:57:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:57:04.057390+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:57:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T19:57:04.060075+00: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-09T19:57:04.070103+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_character (shot-based, 1 call): 11 entities from 215 shots"} {"timestamp": "2026-07-09T19:57:04.084945+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character completed (completed=11/11, failed=0)"} {"timestamp": "2026-07-09T19:57:04.085328+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-09T19:57:04.088378+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-09T19:57:04.098896+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-09T19:57:04.109186+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:57:04.113109+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_all_character, repaired=0)"} INFO: 127.0.0.1:54321 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54321 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:57:10.894500+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_extract_character (Step entity_extract_character for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54321 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_extract_character?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:57:10.905809+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character started (run_id=b7988092-137f-4f1a-9f59-a52704dfedde, model=gpt)"} 04:57:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T19:57:10.912512+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54329 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54342 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 04:58:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T19:58:15.233506+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:58:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T19:58:15.236074+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T19:58:15.259420+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character completed (completed=11/11, failed=0)"} {"timestamp": "2026-07-09T19:58:15.259780+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-09T19:58:15.262811+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-09T19:58:15.271993+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-09T19:58:15.283369+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T19:58:15.287460+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_extract_character, repaired=0)"} INFO: 127.0.0.1:54351 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54351 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:58:41.031806+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_all_location (Step entity_all_location for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54351 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_all_location?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T19:58:41.038608+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location started (run_id=2ac5171a-59bb-42b0-bd5e-98b7cfa07a71, model=gpt)"} 04:58:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T19:58:41.043896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54369 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54376 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54387 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:00:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:00:27.168186+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:00:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:00:27.170793+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:00:27.179720+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_location (shot-based, 1 call): 21 entities from 215 shots"} {"timestamp": "2026-07-09T20:00:27.193639+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location completed (completed=21/21, failed=0)"} {"timestamp": "2026-07-09T20:00:27.194003+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-09T20:00:27.196709+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-09T20:00:27.207314+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-09T20:00:27.219737+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:00:27.225070+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_all_location, repaired=0)"} INFO: 127.0.0.1:54393 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54393 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:00:41.218019+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_extract_location (Step entity_extract_location for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54393 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_extract_location?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:00:41.229547+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location started (run_id=bde424a5-137e-45ae-ae6e-bacfd799d3fc, model=gemini-pro)"} 05:00:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:00:41.235498+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54404 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:01:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:01:17.117309+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:01:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:01:17.119924+00: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-09T20:01:17.146324+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location completed (completed=21/21, failed=0)"} {"timestamp": "2026-07-09T20:01:17.146683+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-09T20:01:17.149756+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-09T20:01:17.158859+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-09T20:01:17.168476+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:01:17.172325+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_extract_location, repaired=0)"} INFO: 127.0.0.1:54413 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54413 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:01:41.339523+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_all_prop (Step entity_all_prop for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54413 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_all_prop?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:01:41.350233+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop started (run_id=c60739f2-fa2d-4742-b1ae-a1e95139bc72, model=gpt)"} 05:01:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:01:41.355742+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54424 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54431 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:03:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:03:09.857912+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:03:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:03:09.860524+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:03:09.869108+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_prop (shot-based, 1 call): 16 entities from 215 shots"} {"timestamp": "2026-07-09T20:03:09.884639+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop completed (completed=16/16, failed=0)"} {"timestamp": "2026-07-09T20:03:09.885037+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-09T20:03:09.888109+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-09T20:03:09.899121+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-09T20:03:09.909592+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:03:09.913126+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_all_prop, repaired=0)"} INFO: 127.0.0.1:54445 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54445 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:03:11.501532+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_extract_prop (Step entity_extract_prop for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54445 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_extract_prop?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:03:11.509597+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop started (run_id=10570701-ba19-43a7-99dc-cf9ca10e17b2, model=gemini-pro)"} 05:03:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:03:11.513235+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54452 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:03:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:03:42.472388+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:03:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:03:42.475061+00: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-09T20:03:42.498861+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop completed (completed=16/16, failed=0)"} {"timestamp": "2026-07-09T20:03:42.499276+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-09T20:03:42.502520+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-09T20:03:42.514561+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-09T20:03:42.529048+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:03:42.534716+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_extract_prop, repaired=0)"} INFO: 127.0.0.1:54470 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54470 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:04:11.622418+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_merge (Step entity_merge for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54470 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_merge?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:04:11.643177+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge started (run_id=33b7b66d-7268-4a17-9607-e7ee2de17698, model=gpt)"} 05:04:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:04:11.648817+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:04:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:04:23.449787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:04:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:04:23.452352+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:04:23.473836+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge completed (completed=48/48, failed=0)"} {"timestamp": "2026-07-09T20:04:23.474211+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-09T20:04:23.477339+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-09T20:04:23.486459+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-09T20:04:23.497176+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_relation', 'entity_filter', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:04:23.500880+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_merge, repaired=0)"} INFO: 127.0.0.1:54480 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54480 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:04:41.713810+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_relation (Step entity_relation for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54480 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_relation?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:04:41.724277+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation started (run_id=44faa353-fb82-4a1b-a4db-890ac0c79953, model=gpt)"} 05:04:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:04:41.733231+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54491 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:05:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:05:29.773847+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:05:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:05:29.776417+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:05:29.788409+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_relation", "message": "Entity relations: 1 candidates → 2 confirmed (2 visual_similar)"} {"timestamp": "2026-07-09T20:05:29.800689+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T20:05:29.801084+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-09T20:05:29.810767+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C06→C10"} {"timestamp": "2026-07-09T20:05:29.810941+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C06→C11"} {"timestamp": "2026-07-09T20:05:29.816594+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-09T20:05:29.823162+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-09T20:05:29.833552+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_filter', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:05:29.837723+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_relation, repaired=0)"} INFO: 127.0.0.1:54498 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54498 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:05:41.839146+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_filter (Step entity_filter for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54498 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_filter?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:05:41.850474+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter started (run_id=dd8c4a91-6f0e-47e9-9fcf-34a6ecbaceca, model=gpt-mini)"} 05:05:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:05:41.857997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:05:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:05:52.610355+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:05:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:05:52.612860+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-09T20:05:52.621974+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_filter", "message": "Filtered 8 low-freq entities → removed 8"} {"timestamp": "2026-07-09T20:05:52.635764+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T20:05:52.636110+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-09T20:05:52.642258+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C06→C10"} {"timestamp": "2026-07-09T20:05:52.642429+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C06→C11"} {"timestamp": "2026-07-09T20:05:52.647051+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-09T20:05:52.653927+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-09T20:05:52.666051+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:05:52.670667+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_filter, repaired=0)"} INFO: 127.0.0.1:54508 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54508 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:06:11.914047+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_detail (Step entity_detail for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54508 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_detail?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:06:11.923542+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail started (run_id=56b03fff-e9de-482c-98dc-60da32cf51c9, model=gpt)"} 05:06:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:06:11.937379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54515 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54525 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54534 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54548 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:08:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:15.268793+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:08:15.270884+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:08:15.301801+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail completed (completed=40/40, failed=0)"} {"timestamp": "2026-07-09T20:08:15.302182+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-09T20:08:15.308179+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C06→C10"} {"timestamp": "2026-07-09T20:08:15.308412+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.relation_sync_service", "message": "Relation skip — unknown canon: C06→C11"} {"timestamp": "2026-07-09T20:08:15.313870+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-09T20:08:15.321173+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-09T20:08:15.331652+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:08:15.335895+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_detail, repaired=0)"} INFO: 127.0.0.1:54555 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54555 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:08:42.178559+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:entity_t2i (Step entity_t2i for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54555 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/entity_t2i?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:08:42.187724+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i started (run_id=fae582a0-ddd4-455f-a434-e24599700d0d, model=gemini-pro)"} {"timestamp": "2026-07-09T20:08:42.190581+00:00", "level": "INFO", "logger": "app.core.steps.entity_steps", "message": "entity_t2i 수리영: distinctive_visual_traits 1개 렌더 제외 (evidence-gate, literal_visual+source_quote 아님): [{'trait': '각성 시 눈동자에 금빛 물결이 일렁임', 'kind': 'metaphorical_impression', 'has_quote': True, 'reason': '눈동자 묘사지만 ‘금빛 물결이 일렁임’은 색과 움직임을 결합한 인상적 표현이다.'}]"} 05:08:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:42.194332+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:43.199839+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:44.204677+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:45.205336+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:46.212601+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:47.215465+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:48.221528+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:49.229291+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:50.239093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:50.786384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:50.788908+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:08:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:51.247761+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:51.455158+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:51.457582+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:08:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:52.249955+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:53.257592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:53.954898+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:53.957443+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:08:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:54.257117+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:55.495865+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:55.498680+00: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-09T20:08:55.500389+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[entity_t2i] Tier 1 failed (LLM returned empty response for step=entity_t2i, model=gemini-pro), trying sanitized input"} 05:08:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:55.504527+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:55.878010+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:55.880526+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:08:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:55.900169+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:56.548955+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:56.551520+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:08:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:56.571528+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:56.747178+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:56.749704+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:08:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:57.147442+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:57.148658+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:08:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:57.342466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:57.344287+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:08:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:57.384373+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:58.394769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:08:59.406728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:08:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:08:59.929424+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:08:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:08:59.931956+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:00.416664+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:00.604809+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:00.606819+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:01.089209+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:01.091422+00: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-09T20:09:01.094077+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[entity_t2i] Tier 2 sanitized failed (LLM returned empty response for step=entity_t2i, model=gemini-pro), trying GPT fallback"} 05:09:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:09:01.097466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:09:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:01.418259+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:02.182658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:02.185202+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:02.427020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:03.640432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:03.642984+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:03.663618+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:08.492633+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:09:08.495159+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:09:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:08.514334+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:08.845087+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:08.847238+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:08.869117+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:09.812065+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:09.814598+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:09.838343+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:10.873468+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:10.876003+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:10.896356+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:11.447525+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:11.450440+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:11.468752+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:11.838116+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:11.840784+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:11.861565+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:11.937143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:11.939546+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:11.960629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54603 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:09:12.834684+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} 05:09:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:12.838704+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:12.839004+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:12.847788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:13.372854+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:13.375362+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:13.397343+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:14.141020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:14.143542+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:14.163225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:17.241271+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:17.243886+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:17.264223+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:19.287869+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:19.290317+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:19.311801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:19.769876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:19.772455+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:19.791722+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:20.149508+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:20.152024+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:20.173416+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:21.214368+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:21.218141+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:21.232461+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:21.501520+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:21.503156+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:21.516593+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:22.272956+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:22.275134+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:22.294669+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:22.868600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:22.870162+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:09:22.888992+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:09:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:24.502718+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:24.505271+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:24.991514+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:24.993689+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:27.447188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:27.449862+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:28.614377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:28.616960+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:30.444998+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:30.447580+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:30.841978+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:30.845865+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:30.850826+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:30.851307+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:30.937526+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:30.938868+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:31.044984+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:31.048184+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 05:09:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:36.077659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:09:36.079772+00: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-09T20:09:36.120000+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i completed (completed=40/40, failed=0)"} {"timestamp": "2026-07-09T20:09:36.162072+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:09:36.175707+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-09T20:09:36.178432+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-09T20:09:36.189750+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-09T20:09:36.201520+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:09:36.205289+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=entity_t2i, repaired=0)"} INFO: 127.0.0.1:54620 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54620 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:09:42.417643+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_selection (Step shot_selection for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54620 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_selection?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:09:42.427954+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection started (run_id=da441186-525e-4cc2-b7e1-a5b2bfaf69d7, model=gpt-mini)"} {"timestamp": "2026-07-09T20:09:42.435978+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 1 scenes auto-selected (1-shot), 29 scenes to evaluate (abs_max=3, ratio_cap=50%)"} 05:09:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:42.443622+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:42.447382+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:42.450072+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:42.451011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:48.941870+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:09:48.945484+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-09T20:09:48.953889+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 2: 2/4 selected (eff_max=2)"} 05:09:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:48.956806+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:49.033144+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:09:49.034349+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-09T20:09:49.038795+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 1: 2/5 selected (eff_max=2)"} 05:09:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:49.041261+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:51.051433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:09:51.054954+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-09T20:09:51.062083+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 3: 1/3 selected (eff_max=1)"} 05:09:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:51.065297+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:51.723322+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:09:51.726686+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-09T20:09:51.733176+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 4: 1/2 selected (eff_max=1)"} 05:09:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:51.735986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:54.717851+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:09:54.721533+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-09T20:09:54.728874+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 6: 1/2 selected (eff_max=1)"} 05:09:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:54.731773+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:58.078419+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:09:58.080824+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-09T20:09:58.088038+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 5: 3/15 selected (eff_max=3)"} 05:09:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:58.090734+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:09:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:09:58.465507+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:09:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:09:58.467602+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-09T20:09:58.472214+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 8: 3/11 selected (eff_max=3)"} 05:09:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:09:58.474780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:00.384468+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:00.386113+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-09T20:10:00.393302+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 7: 2/9 selected (eff_max=3)"} 05:10:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:00.397266+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:02.195240+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:02.197717+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-09T20:10:02.205788+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 10: 2/8 selected (eff_max=3)"} 05:10:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:02.208606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:03.542300+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:03.544843+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-09T20:10:03.553549+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 11: 2/6 selected (eff_max=3)"} 05:10:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:03.556477+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:05.459622+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:05.462299+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-09T20:10:05.469228+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 12: 3/15 selected (eff_max=3)"} 05:10:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:05.472585+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:09.315708+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:09.319362+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-09T20:10:09.326334+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 13: 2/6 selected (eff_max=3)"} 05:10:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:09.329981+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:11.126306+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:11.129668+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:11.132439+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 05:10:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:11.133898+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-09T20:10:11.138443+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 14: 2/10 selected (eff_max=3)"} {"timestamp": "2026-07-09T20:10:11.142110+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 16: 2/4 selected (eff_max=2)"} 05:10:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:11.144085+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:11.146020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:11.887884+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:11.891531+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-09T20:10:11.900009+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 15: 2/6 selected (eff_max=3)"} 05:10:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:11.903233+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:54649 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:10:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:12.950374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:12.952930+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-09T20:10:12.961830+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 17: 1/2 selected (eff_max=1)"} 05:10:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:12.965068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:18.176952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:18.179517+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-09T20:10:18.187275+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 19: 2/8 selected (eff_max=3)"} 05:10:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:18.190047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:18.651428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:18.653828+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-09T20:10:18.663496+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 18: 3/16 selected (eff_max=3)"} 05:10:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:18.666775+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:21.415529+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:21.418088+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-09T20:10:21.426330+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 21: 3/13 selected (eff_max=3)"} 05:10:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:21.428929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:22.950283+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:22.953908+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-09T20:10:22.962776+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 22: 1/3 selected (eff_max=1)"} 05:10:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:22.965849+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:25.360783+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:25.363937+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-09T20:10:25.369976+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 23: 2/4 selected (eff_max=2)"} 05:10:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:25.372821+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:25.650968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:25.653473+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-09T20:10:25.659302+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 20: 2/7 selected (eff_max=3)"} 05:10:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:25.661769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:27.286438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:27.288905+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-09T20:10:27.297603+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 24: 1/4 selected (eff_max=2)"} 05:10:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:27.300590+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:30.857726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:30.861249+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-09T20:10:30.867972+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 27: 1/3 selected (eff_max=1)"} 05:10:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:30.870788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:33.725143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:33.727680+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-09T20:10:33.737204+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 26: 3/11 selected (eff_max=3)"} 05:10:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T20:10:33.740164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 05:10:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:34.401257+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:34.403602+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-09T20:10:34.411996+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 25: 3/14 selected (eff_max=3)"} 05:10:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:36.894005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:36.896384+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-09T20:10:36.903454+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 28: 3/10 selected (eff_max=3)"} INFO: 127.0.0.1:54665 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:10:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:46.378128+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:46.379789+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-09T20:10:46.384073+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 29: 3/9 selected (eff_max=3)"} 05:10:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:10:56.746018+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:10:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T20:10:56.749495+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-09T20:10:56.755702+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 30: 1/4 selected (eff_max=2)"} {"timestamp": "2026-07-09T20:10:56.756220+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 60/215 shots selected across 30 scenes"} {"timestamp": "2026-07-09T20:10:56.771263+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T20:10:56.835712+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:10:56.848500+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-09T20:10:56.855985+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-09T20:10:56.864747+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:10:56.867665+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_selection, repaired=0)"} INFO: 127.0.0.1:54673 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54673 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:11:12.601441+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_director (Step scene_director for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54673 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:11:12.657329+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:11:12.665760+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-09T20:11:12.670438+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-09T20:11:12.676236+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:11:12.677854+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-09T20:11:12.682816+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=c60bbd1d-520c-43d0-ae8f-8c3cdea83e8c, model=gemini-pro)"} {"timestamp": "2026-07-09T20:11:12.686007+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} {"timestamp": "2026-07-09T20:11:12.695454+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."} 05:11:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:11:12.699672+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54681 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54693 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:12:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:12:17.663155+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:12:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:12:17.666017+00: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-09T20:12:17.701097+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T20:12:17.751581+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:12:17.756077+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-09T20:12:17.760092+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-09T20:12:17.764946+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:12:17.766438+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_director, repaired=0)"} INFO: 127.0.0.1:54731 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54731 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:12:42.794395+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_director (Step shot_director for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54731 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:12:42.807023+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director started (run_id=f1684f72-f741-40a8-8e00-0d8094ab51be, model=gpt)"} 05:12:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:12:42.822305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:12:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:12:56.452841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:12:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:12:56.456258+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:12:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:12:56.469233+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:13:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:13:03.501769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:13:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:13:03.504295+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:13:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:13:03.520221+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:13:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:13:11.541919+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:13:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:13:11.544452+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:13:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:13:11.560385+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54753 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:13:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:13:14.241852+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:13:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:13:14.245530+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:13:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:13:14.259562+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:13:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:13:24.298152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:13:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:13:24.301068+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:13:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:13:24.313901+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:13:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:13:27.420197+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:13:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:13:27.423636+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:13:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:13:27.436687+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:13:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:13:38.393360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:13:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:13:38.395387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:13:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:13:38.405321+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54766 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:13:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:13:46.726094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:13:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:13:46.729804+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:13:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:13:46.741447+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:13:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:13:50.178828+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:13:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:13:50.181406+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:13:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:13:50.194946+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:14:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:14:04.298697+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:14:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:14:04.301264+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:14:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:14:04.316961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:14:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:14:12.789007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:14:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:14:12.791898+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:14:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:14:12.808551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54785 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:14:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:14:24.139841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:14:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:14:24.142401+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:14:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:14:24.156550+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:14:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:14:32.221132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:14:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:14:32.223506+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:14:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:14:32.236704+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54792 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:14:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:14:44.065679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:14:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:14:44.068264+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:14:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:14:44.083219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:14:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:14:50.965276+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:14:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:14:50.967797+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:14:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:14:50.981191+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:15:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:15:05.533938+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:15:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:15:05.536414+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:15:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:15:05.550220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:15:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:15:08.015811+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:15:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:15:08.018403+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:15:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:15:08.031901+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54805 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:15:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:15:20.461468+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:15:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:15:20.464863+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:15:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:15:20.477987+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:15:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:15:32.332301+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:15:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:15:32.334905+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:15:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:15:32.348505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54813 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:16:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:16:06.937688+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:16:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:16:06.940147+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:16:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:16:06.953691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54824 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54837 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:16:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:16:52.115368+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:16:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:16:52.118815+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:16:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:16:52.132923+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:16:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:16:56.021459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:16:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:16:56.024811+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:16:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:16:56.038205+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:17:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:17:03.151080+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:17:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:17:03.153591+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:17:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:17:03.168309+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:17:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:17:06.650339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:17:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:17:06.652922+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:17:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:17:06.667893+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54850 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:17:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:17:35.808407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:17:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:17:35.811055+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:17:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:17:35.826140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54858 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:17:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:17:56.345316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:17:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:17:56.348757+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:17:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:17:56.362381+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:18:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:18:03.380487+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:18:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:18:03.383923+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:18:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:18:03.397258+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54872 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:18:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:18:17.968357+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:18:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:18:17.969812+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:18:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:18:17.977892+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:18:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:18:28.104889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:18:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:18:28.106726+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:18:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:18:28.118421+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:18:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:18:31.364301+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:18:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:18:31.367074+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:18:31.375604+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_director", "message": "shot_director: 30 scenes (30 LLM, 0 skipped), 60 total shots"} {"timestamp": "2026-07-09T20:18:31.384414+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T20:18:31.423891+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:18:31.433811+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-09T20:18:31.441355+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-09T20:18:31.450113+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:18:31.452578+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_director, repaired=0)"} INFO: 127.0.0.1:54880 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54880 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:18:43.380127+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_camera_flow (Step scene_camera_flow for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54880 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_camera_flow?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:18:43.394064+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow started (run_id=f951d8bb-f73e-41a1-acce-34d37cc976aa, model=gpt)"} 05:18:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:18:43.408397+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:18:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:18:43.410301+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:18:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:18:43.414879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:18:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:18:43.415621+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:19:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:00.937834+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:00.939972+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:00.956526+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S4: 2 stages, 1 shot assignments"} 05:19:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:00.959658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:19:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:04.314617+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:04.317242+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:04.333857+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S3: 3 stages, 1 shot assignments"} 05:19:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:04.337282+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:19:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:08.036860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:08.040308+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:08.057434+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S2: 4 stages, 2 shot assignments"} 05:19:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:08.060586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:19:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:08.133651+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:08.135612+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:08.151079+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S1: 4 stages, 2 shot assignments"} 05:19:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:08.153658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54906 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:19:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:26.732763+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:26.735363+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:26.750492+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S6: 3 stages, 1 shot assignments"} 05:19:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:26.753335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:19:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:32.909717+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:32.911731+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:32.924706+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S7: 3 stages, 2 shot assignments"} 05:19:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:32.927438+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:19:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:38.219007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:38.222469+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:38.237842+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S5: 5 stages, 3 shot assignments"} 05:19:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:38.240761+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:19:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:41.902344+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:41.905668+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:41.921367+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S8: 5 stages, 3 shot assignments"} 05:19:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:41.924117+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54919 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:19:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:48.393481+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:48.394991+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:48.409897+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S9: 3 stages, 1 shot assignments"} 05:19:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:48.413397+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:19:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:19:56.836965+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:19:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:19:56.839674+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:19:56.855642+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S10: 4 stages, 2 shot assignments"} 05:19:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:19:56.858435+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:20:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:04.402320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:04.404398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:04.419151+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S11: 4 stages, 2 shot assignments"} 05:20:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:04.422359+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:20:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:09.986554+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:09.988775+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:10.004415+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S12: 6 stages, 3 shot assignments"} 05:20:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:10.007535+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:20:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:13.342032+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:13.344605+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:13.361456+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S13: 5 stages, 2 shot assignments"} 05:20:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:13.364872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54932 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:20:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:29.323025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:29.325576+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:29.340848+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S15: 4 stages, 2 shot assignments"} 05:20:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:29.344147+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:20:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:32.877016+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:32.880463+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:32.894859+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S17: 3 stages, 1 shot assignments"} 05:20:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:32.898344+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:20:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:36.821966+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:36.824622+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:36.843271+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S16: 4 stages, 2 shot assignments"} 05:20:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:36.846516+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:20:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:40.387466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:40.389901+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:40.405132+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S14: 7 stages, 2 shot assignments"} 05:20:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:40.407931+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54943 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:20:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:58.256906+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:58.259542+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:58.275892+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S19: 4 stages, 2 shot assignments"} 05:20:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:58.277929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:20:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:20:59.443598+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:20:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:20:59.446250+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:20:59.461970+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S20: 4 stages, 2 shot assignments"} 05:20:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:20:59.465248+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:21:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:21:10.427401+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:21:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:21:10.429990+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:21:10.446054+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S18: 6 stages, 3 shot assignments"} 05:21:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:21:10.448855+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:21:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:21:12.183747+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:21:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:21:12.186277+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:21:12.202454+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S21: 5 stages, 3 shot assignments"} 05:21:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:21:12.205344+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54956 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:21:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:21:19.968392+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:21:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:21:19.970988+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:21:19.987826+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S23: 3 stages, 2 shot assignments"} 05:21:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:21:19.990582+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:21:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:21:25.198161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:21:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:21:25.200290+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:21:25.214853+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S22: 4 stages, 1 shot assignments"} 05:21:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:21:25.219106+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:21:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:21:34.233030+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:21:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:21:34.235388+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:21:34.250153+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S24: 3 stages, 1 shot assignments"} 05:21:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:21:34.253017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:21:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:21:38.459375+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:21:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:21:38.461969+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:21:38.480452+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S25: 5 stages, 3 shot assignments"} 05:21:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:21:38.483316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:21:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:21:43.207443+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:21:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:21:43.210123+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:21:43.224605+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S27: 3 stages, 1 shot assignments"} 05:21:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:21:43.227823+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:54965 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:21:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:21:59.536166+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:21:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:21:59.538376+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:21:59.550644+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S26: 5 stages, 3 shot assignments"} 05:22:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:22:00.396414+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:22:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:22:00.398921+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:22:00.414717+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S28: 5 stages, 3 shot assignments"} 05:22:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:22:05.360025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:22:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:22:05.363508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:22:05.378872+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S30: 4 stages, 1 shot assignments"} INFO: 127.0.0.1:54973 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:22:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:22:15.952428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:22:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:22:15.954610+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:22:15.969307+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S29: 4 stages, 3 shot assignments"} {"timestamp": "2026-07-09T20:22:15.987069+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T20:22:16.037426+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:22:16.046350+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-09T20:22:16.053654+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-09T20:22:16.062555+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:22:16.064822+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_camera_flow, repaired=0)"} INFO: 127.0.0.1:54981 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54981 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:22:43.747110+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_dependency (Step shot_dependency for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54981 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_dependency?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:22:43.757532+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency started (run_id=5285748d-9b43-468d-945a-3220ef914f4f, model=gpt)"} {"timestamp": "2026-07-09T20:22:43.763237+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_step", "message": "shot_dependency: 42/60 shots linked (code-based scoring)"} {"timestamp": "2026-07-09T20:22:43.773269+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency completed (completed=60/60, failed=0)"} {"timestamp": "2026-07-09T20:22:43.830610+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:22:43.841520+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-09T20:22:43.849730+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-09T20:22:43.859321+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:22:43.861859+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_dependency, repaired=0)"} INFO: 127.0.0.1:54995 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54995 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:23:13.844392+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:outlook_phase1 (Step outlook_phase1 for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:54995 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/outlook_phase1?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:23:13.899488+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:23:13.910216+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-09T20:23:13.918584+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-09T20:23:13.927895+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:23:13.929902+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-09T20:23:13.936800+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 started (run_id=8daf9c69-4bac-40b0-9c49-ca2ce046d12a, model=gemini-pro)"} {"timestamp": "2026-07-09T20:23:13.943136+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1: 30 scenes, 11 characters"} 05:23:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:23:13.948457+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55003 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:24:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:24:00.181622+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:24:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:24:00.184254+00: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-09T20:24:00.195820+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 complete: 13 outlooks (O01~O13)"} {"timestamp": "2026-07-09T20:24:00.208701+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 completed (completed=13/11, failed=0)"} {"timestamp": "2026-07-09T20:24:00.271354+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:24:00.285488+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-09T20:24:00.296258+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-09T20:24:00.308909+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:24:00.311511+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=outlook_phase1, repaired=0)"} INFO: 127.0.0.1:55019 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55019 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:24:13.970032+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:outlook_phase2 (Step outlook_phase2 for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55019 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/outlook_phase2?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:24:14.019807+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:24:14.025935+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-09T20:24:14.030732+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-09T20:24:14.036832+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:24:14.038331+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-09T20:24:14.044010+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=44414161-8d51-4c29-aac4-c2b0f0f04c8f, model=gemini-pro)"} {"timestamp": "2026-07-09T20:24:14.048137+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 13 outlooks to 30 scenes (O00: 0 chars excluded)"} 05:24:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:24:14.053140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55029 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:25:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:25:03.617824+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:25:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:25:03.620435+00: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-09T20:25:03.636382+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 26 scene assignments"} {"timestamp": "2026-07-09T20:25:03.649787+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=26/30, failed=0)"} {"timestamp": "2026-07-09T20:25:03.710250+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:25:03.723639+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-09T20:25:03.732164+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-09T20:25:03.741769+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:25:03.744221+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=outlook_phase2, repaired=0)"} INFO: 127.0.0.1:55041 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55041 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:25:14.095183+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:outlook_phase3 (Step outlook_phase3 for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55041 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/outlook_phase3?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:25:14.148719+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:25:14.158144+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-09T20:25:14.164673+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-09T20:25:14.172111+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:25:14.173857+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-09T20:25:14.179212+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=a85d58fb-8b56-40a3-976e-b75b7d83e505, model=gemini-pro)"} {"timestamp": "2026-07-09T20:25:14.182424+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 13 outlooks, 26 assignments (O00 protected)"} 05:25:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:25:14.186728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:25:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:25:23.878078+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:25:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:25:23.880822+00: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-09T20:25:23.889622+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-09T20:25:23.889808+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 12 outlooks (removed 1)"} {"timestamp": "2026-07-09T20:25:23.904533+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=12/1, failed=0)"} {"timestamp": "2026-07-09T20:25:23.967550+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:25:23.981425+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-09T20:25:24.011367+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +11 / -0)"} {"timestamp": "2026-07-09T20:25:24.017451+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:25:24.028279+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-09T20:25:24.040324+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:25:24.044292+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=outlook_phase3, repaired=0)"} INFO: 127.0.0.1:55052 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55052 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:25:44.171679+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_staging (Step shot_staging for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55052 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_staging?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:25:44.183706+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging started (run_id=45f44ff7-015e-4efe-be0d-3261688e7d5f, model=gpt)"} {"timestamp": "2026-07-09T20:25:44.190994+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging: 60 selected shots to analyze"} 05:25:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:25:44.193405+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55063 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55071 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55080 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55087 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:28:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:28:06.351312+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:28:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:28:06.354430+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:28:06.383469+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 1/6 attempt 1: 10 shots ok"} 05:28:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:28:06.385650+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55104 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55114 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55131 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55139 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55148 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:30:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:30:16.442637+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:30:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:30:16.445244+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:30:16.475705+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 2/6 attempt 1: 10 shots ok"} 05:30:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:30:16.478081+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55156 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55166 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55175 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55187 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:32:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:32:20.373865+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:32:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:32:20.376551+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:32:20.406610+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 3/6 attempt 1: 10 shots ok"} 05:32:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:32:20.409014+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55196 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55208 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55215 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55232 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:34:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:34:39.071113+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:34:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:34:39.073253+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:34:39.100055+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 4/6 attempt 1: 10 shots ok"} 05:34:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:34:39.102324+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55244 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55254 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55260 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55269 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55276 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:37:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:37:01.005220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:37:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:37:01.008808+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:37:01.038845+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 5/6 attempt 1: 10 shots ok"} 05:37:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:37:01.041017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55286 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55295 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55309 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55315 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55324 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55339 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:39:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:39:57.547855+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:39:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:39:57.551176+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:39:57.580942+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 6/6 attempt 1: 10 shots ok"} {"timestamp": "2026-07-09T20:39:57.595731+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging completed (completed=60/60, failed=0)"} {"timestamp": "2026-07-09T20:39:57.653767+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:39:57.659973+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-09T20:39:57.675072+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:39:57.678624+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:39:57.683536+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-09T20:39:57.689688+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:39:57.691745+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_staging, repaired=0)"} INFO: 127.0.0.1:55349 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55349 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:40:15.499073+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:background_classify (Step background_classify for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55349 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/background_classify?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:40:15.519524+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify started (run_id=5c241e6d-e3f7-4f12-ab2c-bc67e46a60af, model=gpt)"} 05:40:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:40:15.530037+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:40:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:40:38.915154+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:40:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:40:38.917790+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:40:38.945519+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T20:40:39.003296+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:40:39.014682+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-09T20:40:39.035102+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:40:39.040074+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:40:39.050421+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-09T20:40:39.061618+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:40:39.064601+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=background_classify, repaired=0)"} INFO: 127.0.0.1:55358 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55358 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:40:45.570456+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:background_master_plan (Step background_master_plan for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55358 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/background_master_plan?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:40:45.580273+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan started (run_id=8a6bdc6f-60b5-4039-bd4d-177d8a5716dc, model=gpt)"} {"timestamp": "2026-07-09T20:40:45.587517+00:00", "level": "INFO", "logger": "app.core.steps.background_master_plan_step", "message": "master_plan: group bg_rooftop_unit pre-filtered 1 member(s) w/o location_profile: ['L03']"} 05:40:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:40:45.595383+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:40:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:40:45.598880+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:40:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:40:45.602151+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:40:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:40:45.606873+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:41:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:41:07.459420+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:41:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:41:07.461498+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:41:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:41:10.230814+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:41:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:41:10.233001+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:55372 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:41:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:41:27.903240+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:41:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:41:27.905436+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:55378 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:42:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:42:03.015953+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:42:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:42:03.019251+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:42:03.056630+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan completed (completed=4/4, failed=0)"} {"timestamp": "2026-07-09T20:42:03.113577+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:42:03.120312+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-09T20:42:03.136560+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:42:03.141285+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:42:03.150007+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-09T20:42:03.159208+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:42:03.161912+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=background_master_plan, repaired=0)"} INFO: 127.0.0.1:55388 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55388 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:42:15.761499+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:floor_plan_prompt (Step floor_plan_prompt for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55388 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/floor_plan_prompt?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:42:15.773249+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt started (run_id=92daf2b1-f8f0-4c44-aa3c-476be5831c1e, model=gpt)"} 05:42:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:42:15.786834+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:42:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:42:15.788124+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:42:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:42:15.789654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:42:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:42:15.795045+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55427 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55441 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:43:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:43:32.958300+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:43:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:43:32.961843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:43:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:43:32.984475+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:43:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:43:41.037139+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:43:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:43:41.039275+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:43:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:43:41.060872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55452 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:43:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:43:55.265967+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:43:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:43:55.268560+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:43:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:43:55.290773+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:44:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:44:15.777296+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:44:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:44:15.779890+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:44:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:44:15.801642+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55464 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:44:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:44:33.894618+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:44:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:44:33.896846+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:55479 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:45:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:45:12.523840+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:45:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:45:12.525864+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:55489 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:45:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:45:17.182425+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:45:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:45:17.185043+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 05:45:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:45:17.450041+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:45:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:45:17.451898+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:45:17.481800+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T20:45:17.532191+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:45:17.540785+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-09T20:45:17.556785+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:45:17.560204+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:45:17.566197+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-09T20:45:17.573573+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:45:17.575724+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=floor_plan_prompt, repaired=0)"} INFO: 127.0.0.1:55497 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55497 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:45:46.038518+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_essence_extraction (Step shot_essence_extraction for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55497 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_essence_extraction?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:45:46.105175+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:45:46.115778+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-09T20:45:46.132689+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:45:46.136283+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:45:46.142247+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-09T20:45:46.149803+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:45:46.152155+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_essence_extraction, repaired=0)"} INFO: 127.0.0.1:55508 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55508 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:46:16.133084+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_consistency (Step scene_consistency for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55508 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_consistency?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:46:16.149073+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency started (run_id=4efb1ef9-09c2-4880-90d0-e6b41b8eaf8d, model=gemini-pro)"} {"timestamp": "2026-07-09T20:46:16.157930+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency: 21 scenes need LLM (workers=5, already_done=0, single_shot_skipped=9)"} 05:46:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:16.163053+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:46:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:16.165757+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:46:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:16.168242+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:46:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:16.171216+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:46:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:16.172430+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:46:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:46:38.603027+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:46:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:46:38.606336+00: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-09T20:46:38.620638+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S7: 1 fixed elements"} 05:46:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:38.623194+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:46:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:46:42.657524+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:46:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:46:42.659982+00: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-09T20:46:42.675517+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S1: 3 fixed elements"} 05:46:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:42.678699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:46:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:46:44.073526+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:46:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:46:44.076076+00: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-09T20:46:44.094195+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S8: 2 fixed elements"} 05:46:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:44.096908+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:46:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:46:45.588367+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:46:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:46:45.590369+00: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-09T20:46:45.603725+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S2: 1 fixed elements"} 05:46:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:45.606321+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55529 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:46:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:46:57.482146+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:46:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:46:57.485703+00: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-09T20:46:57.501450+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S10: 1 fixed elements"} 05:46:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:46:57.504160+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:06.021141+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:06.023529+00: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-09T20:47:06.037645+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S11: 1 fixed elements"} 05:47:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:06.047057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:06.983980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:06.986812+00: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-09T20:47:07.004317+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S5: 2 fixed elements"} 05:47:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:07.007216+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55540 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:47:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:17.153705+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:17.156211+00: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-09T20:47:17.171652+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S13: 2 fixed elements"} 05:47:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:17.174349+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:21.350785+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:21.353370+00: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-09T20:47:21.368175+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S15: 1 fixed elements"} 05:47:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:21.370780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:26.093528+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:26.096100+00: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-09T20:47:26.114469+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S14: 2 fixed elements"} 05:47:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:26.117236+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:30.441761+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:30.443533+00: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-09T20:47:30.454806+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S19: 1 fixed elements"} 05:47:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:30.457597+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:31.456302+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:31.458662+00: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-09T20:47:31.472176+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S16: 2 fixed elements"} 05:47:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:31.474736+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:35.243406+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:35.245727+00: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-09T20:47:35.261396+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S12: 1 fixed elements"} 05:47:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:35.264540+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:35.910305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:35.912836+00: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-09T20:47:35.915801+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_consistency] Tier 1 failed (LLM returned empty response for step=scene_consistency, model=gemini-pro), trying sanitized input"} 05:47:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:35.920535+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:47:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:36.537407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:36.539826+00: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-09T20:47:36.541471+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_consistency] Tier 2 sanitized failed (LLM returned empty response for step=scene_consistency, model=gemini-pro), trying GPT fallback"} 05:47:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:47:36.545295+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:47:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:47:46.037224+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:47:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:47:46.039348+00: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-09T20:47:46.051989+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S20: 1 fixed elements"} 05:47:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:47:46.054613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55556 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:48:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:48:00.240701+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:48:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:48:00.243290+00: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-09T20:48:00.259735+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S23: 1 fixed elements"} 05:48:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:48:00.262953+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:48:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:48:01.865508+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:48:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:48:01.867908+00: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-09T20:48:01.878011+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S21: 2 fixed elements"} 05:48:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T20:48:01.880623+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 05:48:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:48:07.913670+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:48:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:48:07.915619+00: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-09T20:48:07.926713+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S18: 1 fixed elements"} INFO: 127.0.0.1:55570 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:48:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:48:26.603216+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:48:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T20:48:26.606609+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T20:48:26.622062+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S25: 5 fixed elements"} 05:48:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:48:30.806772+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:48:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:48:30.810313+00: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-09T20:48:30.826198+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S28: 2 fixed elements"} 05:48:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:48:32.923868+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:48:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:48:32.926271+00: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-09T20:48:32.940197+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S29: 1 fixed elements"} 05:48:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:48:34.162966+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:48:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T20:48:34.165830+00: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-09T20:48:34.181511+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S26: 2 fixed elements"} {"timestamp": "2026-07-09T20:48:34.198249+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency completed (completed=30/30, failed=0)"} {"timestamp": "2026-07-09T20:48:34.254859+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:48:34.266922+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-09T20:48:34.287248+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:48:34.291682+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:48:34.299559+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-09T20:48:34.309321+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:48:34.312389+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_consistency, repaired=0)"} INFO: 127.0.0.1:55576 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55576 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:48:46.389611+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:floor_plan_render (Step floor_plan_render for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55576 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/floor_plan_render?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:48:46.400326+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render started (run_id=28bba44d-9d49-48a8-b07b-c1851d75b700, model=gpt)"} INFO: 127.0.0.1:55589 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55608 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55617 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55625 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55632 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55641 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55649 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55660 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55671 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:53:27.665151+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: registered 8 floor_plan ImageAssets"} {"timestamp": "2026-07-09T20:53:27.690258+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T20:53:27.754157+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:53:27.769004+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-09T20:53:27.791521+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:53:27.796612+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:53:27.806992+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-09T20:53:27.817513+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:53:27.821016+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=floor_plan_render, repaired=0)"} INFO: 127.0.0.1:55680 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55680 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:53:46.867124+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:floor_plan_light_sidecar (Step floor_plan_light_sidecar for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55680 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/floor_plan_light_sidecar?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:53:46.877078+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar started (run_id=61f1544c-98b7-4f8b-bd8d-fc00109ea188, model=gpt)"} {"timestamp": "2026-07-09T20:53:46.884927+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-09T20:53:46.942819+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:53:46.953602+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-09T20:53:46.971641+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:53:46.975898+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:53:46.985491+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-09T20:53:46.995252+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:53:46.997750+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=floor_plan_light_sidecar, repaired=0)"} INFO: 127.0.0.1:55687 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55687 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:54:16.944853+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:floor_plan_overlay_payload (Step floor_plan_overlay_payload for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55687 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/floor_plan_overlay_payload?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:54:16.953510+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload started (run_id=56e6dda8-e0b1-4689-a2aa-9b81b984988e, model=gpt)"} {"timestamp": "2026-07-09T20:54:16.969438+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T20:54:17.019089+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:54:17.028797+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-09T20:54:17.047070+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:54:17.050663+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:54:17.055101+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-09T20:54:17.061466+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:54:17.063670+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=floor_plan_overlay_payload, repaired=0)"} INFO: 127.0.0.1:55703 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55703 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:54:47.003885+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:base_location_dossier (Step base_location_dossier for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55703 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/base_location_dossier?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:54:47.010515+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier started (run_id=a55d6ca1-13d2-48cf-9454-b6d81c7ea781, model=gpt)"} {"timestamp": "2026-07-09T20:54:47.020906+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T20:54:47.052327+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:54:47.058112+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-09T20:54:47.067434+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:54:47.069460+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:54:47.072164+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-09T20:54:47.075765+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:54:47.076867+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=base_location_dossier, repaired=0)"} INFO: 127.0.0.1:55712 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55712 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:55:17.083580+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:floor_plan_geometry_readback (Step floor_plan_geometry_readback for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55712 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/floor_plan_geometry_readback?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:55:17.093899+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback started (run_id=f2dfed0b-0553-410e-a9c4-be1a23a41220, model=gpt)"} 05:55:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:55:17.103533+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:55:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:55:31.581374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:55:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:55:31.599759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55724 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:56:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:56:05.937546+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:56:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:56:05.956294+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55731 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:56:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:56:20.281575+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:56:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:56:20.301635+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55740 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:56:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:56:48.929891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:56:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:56:48.947602+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55747 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:57:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:57:24.188959+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:57:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:57:24.207638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:57:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:57:45.708466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:57:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:57:45.727030+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55758 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 05:58:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:58:04.332632+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 05:58:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T20:58:04.348454+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 05:58:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T20:58:15.116430+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-07-09T20:58:15.162968+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback completed (completed=8/1, failed=0)"} {"timestamp": "2026-07-09T20:58:15.214671+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:58:15.223940+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-09T20:58:15.239556+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:58:15.243058+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:58:15.249140+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-09T20:58:15.257761+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:58:15.260247+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=floor_plan_geometry_readback, repaired=0)"} INFO: 127.0.0.1:55771 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55771 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:58:17.366776+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:floor_plan_semantic_readback (Step floor_plan_semantic_readback for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55771 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/floor_plan_semantic_readback?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:58:17.376780+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback started (run_id=35dc969f-3908-46c2-9acd-6ef58d792c4b, model=gpt)"} {"timestamp": "2026-07-09T20:58:17.383011+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-09T20:58:17.416295+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:58:17.422576+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-09T20:58:17.434115+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:58:17.438016+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:58:17.443668+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-09T20:58:17.450696+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:58:17.452640+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=floor_plan_semantic_readback, repaired=0)"} INFO: 127.0.0.1:55782 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55782 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:58:47.454328+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_projection_card (Step shot_projection_card for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55782 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_projection_card?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:58:47.467899+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card started (run_id=b305a6f2-c1a5-473c-b558-92e1630f126d, model=gpt)"} {"timestamp": "2026-07-09T20:58:47.475528+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-09T20:58:47.529622+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:58:47.541279+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-09T20:58:47.557836+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:58:47.561201+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:58:47.566798+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-09T20:58:47.575030+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:58:47.577345+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_projection_card, repaired=0)"} INFO: 127.0.0.1:55789 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55789 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:59:17.543437+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:bg_space_partition (Step bg_space_partition for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55789 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/bg_space_partition?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:59:17.552498+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition started (run_id=11f3305a-0227-4099-bf33-d848aa775677, model=gpt)"} {"timestamp": "2026-07-09T20:59:17.558541+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-09T20:59:17.601748+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:59:17.612381+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-09T20:59:17.629487+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:59:17.632970+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:59:17.639110+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-09T20:59:17.646834+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:59:17.648947+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=bg_space_partition, repaired=0)"} INFO: 127.0.0.1:55809 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55809 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:59:47.619741+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:dwelling_zone_map (Step dwelling_zone_map for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55809 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/dwelling_zone_map?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T20:59:47.629354+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map started (run_id=a8728d9d-5330-44f0-83e9-01761404e24e, model=gpt)"} {"timestamp": "2026-07-09T20:59:47.636356+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map completed (completed=0/0, failed=0)"} {"timestamp": "2026-07-09T20:59:47.688199+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T20:59:47.697670+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-09T20:59:47.714046+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T20:59:47.717561+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T20:59:47.723896+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-09T20:59:47.732385+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T20:59:47.734629+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=dwelling_zone_map, repaired=0)"} INFO: 127.0.0.1:55816 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55816 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:00:17.701735+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_aware_bg_render_plan (Step shot_aware_bg_render_plan for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:55816 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_aware_bg_render_plan?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:00:17.713036+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan started (run_id=77bf7db6-28fa-4ff8-b1ca-0c441b742325, model=gpt)"} 06:00:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:00:17.728592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55828 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:01:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:01:05.326164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:01:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:01:05.339660+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55837 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55849 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55855 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55864 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55875 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55884 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:03:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:03:59.293347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:03:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:03:59.309121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55892 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55910 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:05:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:05:18.046225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:05:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:05:18.057264+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55917 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55925 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:06:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:06:07.912566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:06:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:06:07.922863+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55932 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:06:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:06:48.155824+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:06:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:06:48.161615+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55942 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:07:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:07:03.280979+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:07:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:07:03.291918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55949 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55960 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55967 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:08:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:08:43.031766+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:08:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:08:43.042234+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:55981 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55988 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56006 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:10:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:10:07.628116+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:10:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:10:07.635168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56014 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:10:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:10:32.749846+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:10:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:10:32.760507+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56024 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:10:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:10:58.716904+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-07-09T21:10:58.746353+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan completed (completed=8/1, failed=0)"} {"timestamp": "2026-07-09T21:10:58.811164+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:10:58.823947+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-09T21:10:58.843994+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:10:58.847925+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:10:58.855536+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-09T21:10:58.864860+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T21:10:58.867556+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_aware_bg_render_plan, repaired=0)"} INFO: 127.0.0.1:56030 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56030 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:11:18.686056+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:background_prompt (Step background_prompt for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56030 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/background_prompt?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:11:18.698706+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt started (run_id=ed543320-e75e-4509-9339-0d3e22283b1b, model=gpt)"} {"timestamp": "2026-07-09T21:11:18.707075+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L04B02 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} {"timestamp": "2026-07-09T21:11:18.707503+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L04B01 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 06:11:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:11:18.715830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:11:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:11:18.716711+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:11:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:11:18.718639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:11:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:11:18.721028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:11:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:11:46.840122+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:11:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:11:46.842744+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:11:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:11:46.857260+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56044 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:11:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:11:56.209224+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:11:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:11:56.212602+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:11:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:11:56.227053+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:11:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:11:57.410875+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:11:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:11:57.413469+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:11:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:11:57.428942+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:12:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:12:06.856816+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:12:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:12:06.859041+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:12:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:12:06.873720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56052 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:12:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:12:27.643875+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:12:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:12:27.646640+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:12:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:12:27.661852+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:12:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:12:31.969813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:12:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:12:31.971896+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:12:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:12:31.984641+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:12:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:12:38.516763+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:12:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:12:38.519545+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:12:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:12:38.536218+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56065 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:13:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:13:03.793792+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:13:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:13:03.796206+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:13:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:13:03.812459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:13:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:13:09.601239+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:13:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:13:09.601815+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:13:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:13:09.606307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:13:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:13:17.331020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:13:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:13:17.333522+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:13:17.343786+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L10B01 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 06:13:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:13:17.347658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56078 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:13:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:13:40.705419+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:13:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:13:40.707498+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:13:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:13:40.717138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:13:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:13:41.247844+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:13:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:13:41.250135+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:13:41.258675+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L10B03 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 06:13:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:13:41.262798+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:13:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:13:45.819336+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:13:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:13:45.821930+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:13:45.833435+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L09B01 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 06:13:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:13:45.845096+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56124 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:13:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:13:55.098889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:13:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:13:55.102181+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:13:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:13:55.115662+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:14:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:14:13.574627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:14:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:14:13.577950+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:14:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:14:13.591697+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56132 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:14:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:14:21.419962+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:14:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:14:21.423459+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:14:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:14:21.438722+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:14:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:14:22.214083+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:14:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:14:22.217436+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:14:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:14:22.231778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:14:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:14:29.618107+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:14:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:14:29.621144+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:14:29.631638+00:00", "level": "INFO", "logger": "app.core.steps.background_prompt_step", "message": "background_prompt: bg L14B01 requested v7 but has no overlay payload (no floor plan) — degrade to v6 (overlay_payload_missing_for_requested_overlay_prompt)"} 06:14:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:14:29.635220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56149 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:14:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:14:51.604382+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:14:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:14:51.606949+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:14:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:14:51.620873+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:14:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:14:54.582159+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:14:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:14:54.585381+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:14:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:14:54.597863+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:14:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:14:56.708615+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:14:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:14:56.711177+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:14:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:14:56.725471+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:15:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:15:05.012902+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:15:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:15:05.014938+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:56157 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:15:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:15:33.336084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:15:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:15:33.338806+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:15:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:15:34.912102+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:15:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:15:34.914495+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:56167 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:15:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:15:49.859617+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:15:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:15:49.862987+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:15:49.890795+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt completed (completed=25/25, failed=0)"} {"timestamp": "2026-07-09T21:15:49.950400+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:15:49.965327+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-09T21:15:49.984323+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:15:49.988376+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:15:49.996271+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-09T21:15:50.006981+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T21:15:50.009974+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=background_prompt, repaired=0)"} INFO: 127.0.0.1:56174 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56174 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:16:19.174605+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:episode_reference_policy (Step episode_reference_policy for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56174 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/episode_reference_policy?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:16:19.184381+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy started (run_id=927e5abd-bdf8-4d82-a30d-272c46f08e2d, model=gpt)"} {"timestamp": "2026-07-09T21:16:19.196980+00:00", "level": "INFO", "logger": "app.core.steps.episode_reference_policy_step", "message": "episode_reference_policy: 41 entities — 22 text_only, 19 other"} {"timestamp": "2026-07-09T21:16:19.203646+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy completed (completed=41/41, failed=0)"} {"timestamp": "2026-07-09T21:16:19.249895+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:16:19.259703+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-09T21:16:19.277140+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:16:19.280654+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:16:19.286592+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-09T21:16:19.294112+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'visual_continuity_anchor']"} {"timestamp": "2026-07-09T21:16:19.296517+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=episode_reference_policy, repaired=0)"} INFO: 127.0.0.1:56188 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56188 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:16:49.249174+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:visual_continuity_anchor (Step visual_continuity_anchor for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56188 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/visual_continuity_anchor?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:16:49.261430+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor started (run_id=ef27a4ca-edf5-4965-9717-413f908609eb, model=gpt)"} 06:16:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:16:49.271964+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:17:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:17:10.115065+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:17:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:17:10.117669+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:17:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:17:10.132789+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56196 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56204 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:17:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:17:53.012402+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:17:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:17:53.013967+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:17:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:17:53.026015+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:18:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:18:12.501413+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:18:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:18:12.504143+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:18:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:18:12.522881+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56212 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:18:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:18:31.289556+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:18:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:18:31.292963+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:18:31.320377+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor completed (completed=4/4, failed=0)"} {"timestamp": "2026-07-09T21:18:31.377466+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:18:31.394503+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-09T21:18:31.412152+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:18:31.416210+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:18:31.421543+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-09T21:18:31.428356+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-09T21:18:31.431012+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=visual_continuity_anchor, repaired=0)"} INFO: 127.0.0.1:56225 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56225 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:18:49.554981+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_detail (Step scene_detail for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56225 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_detail?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:18:49.610193+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:18:49.619317+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-09T21:18:49.636984+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:18:49.640905+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:18:49.648629+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-09T21:18:49.658234+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-09T21:18:49.660136+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-09T21:18:49.671444+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail started (run_id=d0a22dd4-4e02-4652-8048-8b893bdaf194, model=gemini-pro)"} {"timestamp": "2026-07-09T21:18:49.678588+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 60 shot_staging entries loaded"} {"timestamp": "2026-07-09T21:18:49.680746+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 scenes with fixed elements loaded"} {"timestamp": "2026-07-09T21:18:49.695979+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 42 shots mapped from 25 backgrounds"} {"timestamp": "2026-07-09T21:18:49.697969+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 42 shots mapped to bg_id from 25 backgrounds"} {"timestamp": "2026-07-09T21:18:49.705704+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 11 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-07-09T21:18:49.713140+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail: 30 segments → 60 tasks (shot-based, 0 edited skipped)"} 06:18:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:18:49.761943+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:18:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:18:49.763879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:18:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:18:49.767384+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:18:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:18:49.769486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:18:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:18:49.771352+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:19:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:15.960319+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:15.963250+00: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-09T21:19:15.986129+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: 제거할 ID: L01 — retry"} 06:19:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:15.988878+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:19:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:18.373125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:18.376865+00: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-09T21:19:18.400781+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: 제거할 ID: L01 — retry"} 06:19:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:18.403221+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56242 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:19:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:20.495563+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:20.498322+00: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-09T21:19:20.518305+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S1 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-09T21:19:20.518538+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S1 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:19:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:20.539534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:19:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:22.727741+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:22.730435+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:19:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:22.772441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:19:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:36.283872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:36.286624+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:19:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:36.328073+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:19:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:41.941835+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:41.944180+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:19:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:19:41.975544+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:19:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:44.107822+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:44.110653+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:19:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:44.143122+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:19:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:45.511172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:45.513329+00: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-09T21:19:45.534081+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S5 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:19:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:19:45.544471+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56268 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:19:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:50.311105+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:19:50.313692+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:19:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:50.338706+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:19:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:52.128188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:19:52.130395+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:19:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:52.155407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:19:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:19:53.382717+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:19:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:19:53.384658+00: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-09T21:19:53.403062+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: retry 후에도 위반 {'L01'} — 강제 제거"} 06:19:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:19:53.419813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:00.432557+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:00.435229+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:20:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:20:00.468109+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:20:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:05.545906+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:05.548531+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:20:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:20:05.581330+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:20:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:07.674852+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:20:07.677172+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:20:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:07.701893+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:11.972527+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:20:11.976079+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:20:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:11.997553+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:12.616871+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:12.618841+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:20:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:12.661088+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:15.424921+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:15.427659+00: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-09T21:20:15.451789+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S6 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:20:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:15.471697+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:15.784675+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:15.786382+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:20:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:15.815853+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56285 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:20:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:34.367550+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:34.371416+00: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-09T21:20:34.391808+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 8: 제거할 ID: L01 — retry"} 06:20:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:34.394525+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:38.976159+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:38.978758+00: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-09T21:20:38.999227+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 8: 제거할 ID: L10 — retry"} 06:20:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:39.001929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:39.171468+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:39.173916+00: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-09T21:20:39.196897+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 8: 제거할 ID: L01 — retry"} 06:20:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:39.199598+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:41.093593+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:41.098051+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:20:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:20:41.134656+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:20:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:44.971863+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:44.975180+00: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-09T21:20:45.006847+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C09 (visible=[]) render_prompt_card:s10.shot8"} {"timestamp": "2026-07-09T21:20:45.006978+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C06 (visible=[]) render_prompt_card:s10.shot8"} 06:20:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:45.015926+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:20:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:47.845079+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:20:47.848638+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:20:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:47.872507+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56298 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:20:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:20:51.899768+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:20:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:20:51.902560+00: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-09T21:20:51.924630+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 8: retry 후에도 위반 {'L10'} — 강제 제거"} 06:20:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:20:51.942670+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:08.171819+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:08.174587+00: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-09T21:21:08.195237+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 11: 제거할 ID: L11 — retry"} 06:21:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:08.198102+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:09.738211+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:09.741742+00: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-09T21:21:09.764858+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 8: retry 후에도 위반 {'L10'} — 강제 제거"} 06:21:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:09.783490+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:11.309035+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:11.311713+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:21:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:21:11.346992+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56307 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:21:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:21.242245+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:21.244999+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:21:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:21:21.279427+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:21:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:21.335573+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:21:21.336996+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:21:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:21.355460+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:21.868497+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:21.869345+00: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-09T21:21:21.879256+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C09 (visible=[]) render_prompt_card:s10.shot8"} {"timestamp": "2026-07-09T21:21:21.879404+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C06 (visible=[]) render_prompt_card:s10.shot8"} 06:21:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:21:21.886081+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:21:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:22.135713+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:22.137558+00: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-09T21:21:22.139625+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[scene_detail] Tier 1 failed (LLM returned empty response for step=scene_detail, model=gemini-pro), trying sanitized input"} 06:21:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:22.155473+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:29.164724+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:21:29.167287+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:21:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:29.192182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:30.263695+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:30.266332+00: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-09T21:21:30.284179+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 11: retry 후에도 위반 {'L01'} — 강제 제거"} 06:21:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:30.302096+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:34.675522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:21:34.679101+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:21:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:21:34.695353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:21:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:39.812270+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:39.814519+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:21:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:39.854578+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:40.095719+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:21:40.097340+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:21:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:21:40.106135+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:21:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:46.006967+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:21:46.009560+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-09T21:21:46.021382+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S11_Shot5: owned redraw repair 성공 — 2 redraw_violation 해소"} 06:21:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:46.037131+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:49.062276+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:49.064596+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:21:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:21:49.097612+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56327 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:21:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:55.260592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:21:55.263185+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:21:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:21:55.287038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:21:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:21:59.000397+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:21:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:21:59.003759+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:21:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:21:59.035521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:22:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:04.566660+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:04.569108+00: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-09T21:22:04.583109+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 12: 제거할 ID: L05 — retry"} 06:22:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:04.584264+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:22:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:06.641997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:06.645351+00: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-09T21:22:06.668458+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: 제거할 ID: L11 — retry"} 06:22:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:06.670891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:22:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:07.832771+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:07.836385+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:22:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:22:07.870427+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:22:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:10.850535+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:22:10.854064+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:22:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:22:10.867831+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:22:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:14.481583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:22:14.484147+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:22:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:14.508305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56340 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:22:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:20.169921+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:22:20.172422+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:22:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:22:20.186784+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:22:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:21.288768+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:21.291714+00: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-09T21:22:21.311455+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S14 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:22:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:21.329370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:22:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:25.843767+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:22:25.846360+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-09T21:22:25.855941+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S13_Shot3: owned redraw repair 성공 — 3 redraw_violation 해소"} 06:22:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:25.871227+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:22:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:29.842966+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:29.845489+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:22:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:22:29.880025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:22:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:34.419117+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:34.421893+00: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-09T21:22:34.446970+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 13: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-07-09T21:22:34.447216+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S13 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:22:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:34.466858+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:22:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:35.432863+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:35.436324+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:22:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:35.473765+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:22:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:42.574440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:22:42.577123+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:22:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:42.604398+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56357 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:22:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:57.348812+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:57.351605+00: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-09T21:22:57.375821+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S15 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-09T21:22:57.377337+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S15 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:22:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:57.395458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:22:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:58.007551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:58.009779+00: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-09T21:22:58.029105+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 16: 제거할 ID: L13 — retry"} 06:22:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:22:58.031312+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:22:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:22:59.700772+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:22:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:22:59.703398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:22:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:22:59.737287+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:23:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:06.145554+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:23:06.148502+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:23:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:23:06.189504+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:23:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:07.556833+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:23:07.560601+00: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-09T21:23:07.583008+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 16: 제거할 ID: L13 — retry"} 06:23:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:07.585434+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:23:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:08.544911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:23:08.547497+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-09T21:23:08.558665+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C06 (visible=[]) render_prompt_card:s18.shot14"} 06:23:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:08.572776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:23:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:10.443881+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:23:10.447325+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:23:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:10.469477+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:23:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:17.100091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:23:17.102945+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:23:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:17.143943+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56370 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:23:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:22.602810+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:23:22.605540+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:23:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:23:22.640086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:23:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:28.715793+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:23:28.718386+00: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-09T21:23:28.739017+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S19 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:23:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:23:28.751105+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:23:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:31.154968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:23:31.158367+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-09T21:23:31.167472+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C02 (visible=['C01'])"} {"timestamp": "2026-07-09T21:23:31.167751+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C02 (visible=['C01']) render_prompt_card:s20.shot2"} 06:23:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:31.181100+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:23:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:33.344080+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:23:33.347650+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:23:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:33.372898+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:23:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:34.657820+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:23:34.660588+00: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-09T21:23:34.683765+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C06 (visible=[]) render_prompt_card:s18.shot14"} 06:23:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:23:34.696830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:23:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:39.861328+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:23:39.864051+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:23:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:23:39.897413+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:23:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:42.273183+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:23:42.275417+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:23:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:42.298025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:23:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:45.089428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:23:45.092060+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:23:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:45.125261+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56390 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:23:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:23:51.344595+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:23:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:23:51.348358+00: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-09T21:23:51.372503+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 16: retry 후에도 위반 {'L13'} — 강제 제거"} 06:23:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:23:51.390989+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:01.881452+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:01.885247+00: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-09T21:24:01.907176+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 20: 제거할 ID: L15 — retry"} 06:24:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:01.910080+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:06.688959+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:06.692665+00: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-09T21:24:06.714175+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: 제거할 ID: L13 — retry"} 06:24:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:06.716983+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:07.521985+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:07.529449+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:24:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:24:07.560488+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:24:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:10.405281+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:10.408065+00: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-09T21:24:10.428660+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: 제거할 ID: L13 — retry"} 06:24:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:10.431412+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:14.444074+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:24:14.446647+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:24:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:14.472959+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:17.666410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:17.670033+00: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-09T21:24:17.694248+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S21 shot13 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:24:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:24:17.710675+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56403 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:24:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:23.497458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:24:23.500048+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:24:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:23.524826+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:27.209989+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:27.212703+00: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-09T21:24:27.235413+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: retry 후에도 위반 {'L01'} — 강제 제거"} 06:24:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:27.254165+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:35.942874+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:35.945709+00: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-09T21:24:35.969741+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 20: retry 후에도 위반 {'L20'} — 강제 제거"} {"timestamp": "2026-07-09T21:24:35.969935+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S20 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-09T21:24:35.970192+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C02 (visible=['C01'])"} {"timestamp": "2026-07-09T21:24:35.970324+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C02 (visible=['C01']) render_prompt_card:s20.shot2"} 06:24:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:35.989527+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:36.881203+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:36.884386+00: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-09T21:24:36.904669+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 21: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-07-09T21:24:36.904910+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S21 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:24:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:36.923461+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:43.824157+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:43.826708+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:24:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:43.865225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:24:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:44.707402+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:44.708560+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:24:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:24:44.730347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:24:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:48.136234+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:24:48.138994+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:24:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:48.180423+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56424 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:24:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:24:51.450947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:24:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:24:51.453340+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:24:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:24:51.476094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:01.152584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:01.155351+00: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-09T21:25:01.179901+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 24: 제거할 ID: L01 — retry"} 06:25:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:01.182346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:07.654232+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:07.657072+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:25:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:25:07.690257+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:25:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:09.594619+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:09.597331+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:25:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:09.637273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:11.954395+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:11.957723+00: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-09T21:25:11.978982+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:25:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:11.997063+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:18.029310+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:25:18.030883+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:25:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:18.055137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56435 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:25:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:27.265308+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:27.268092+00: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-09T21:25:27.292571+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S25 shot14 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:25:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:25:27.304766+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:25:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:30.623525+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:30.624909+00: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-09T21:25:30.642946+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 24: retry 후에도 위반 {'L02'} — 강제 제거"} {"timestamp": "2026-07-09T21:25:30.643164+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S24 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:25:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:30.653910+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:33.786174+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:25:33.787663+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:25:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:33.809848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:36.755482+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:36.758181+00: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-09T21:25:36.783595+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 26: 제거할 ID: L01 — retry"} 06:25:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:36.786143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:40.128842+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:40.131747+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:25:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:25:40.165616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:25:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:47.977755+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:47.980525+00: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-09T21:25:48.002499+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-09T21:25:48.002730+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S26 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:25:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:48.021267+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:48.900107+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:25:48.902793+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:25:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:48.928851+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56453 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:25:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:54.868120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:54.871156+00: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-09T21:25:54.891865+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 28: 제거할 ID: L01 — retry"} 06:25:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:54.894764+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:25:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:25:55.836606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:25:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:25:55.839553+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:25:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:25:55.896148+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:26:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:01.235634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:26:01.237008+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:26:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:26:01.281269+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:26:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:15.227901+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:26:15.230602+00: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-09T21:26:15.252841+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 28: retry 후에도 위반 {'L02'} — 강제 제거"} 06:26:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:26:15.271908+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:26:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:19.798346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:26:19.800590+00: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-09T21:26:19.821304+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S28 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-07-09T21:26:19.821522+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S28 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 06:26:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:26:19.832364+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56464 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:26:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:23.281335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:26:23.285058+00: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-09T21:26:23.306619+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 29: 제거할 ID: L19 — retry"} 06:26:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:26:23.309364+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:26:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:26.263894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:26:26.266665+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:26:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:26.438903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:26:26.441439+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:26:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:30.720092+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:26:30.723754+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:26:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:26:30.757026+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:26:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:36.195103+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:26:36.197665+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 06:26:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:38.214024+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:26:38.216763+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:56474 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:26:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:26:54.378331+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:26:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:26:54.381158+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:26:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:26:54.415812+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:27:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:27:04.587934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:27:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:27:04.590514+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-09T21:27:04.605848+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 42 shots mapped from 25 backgrounds"} {"timestamp": "2026-07-09T21:27:04.607469+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 60 shot_staging entries loaded"} {"timestamp": "2026-07-09T21:27:04.614340+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 60 shot_staging entries loaded"} {"timestamp": "2026-07-09T21:27:04.616747+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 scenes with fixed elements loaded"} {"timestamp": "2026-07-09T21:27:04.629734+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 42 shots mapped from 25 backgrounds"} {"timestamp": "2026-07-09T21:27:04.631281+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 42 shots mapped to bg_id from 25 backgrounds"} {"timestamp": "2026-07-09T21:27:04.640818+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 11 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-07-09T21:27:04.719889+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C09 (visible=[]) render_prompt_card:s10.shot8"} {"timestamp": "2026-07-09T21:27:04.719933+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C06 (visible=[]) render_prompt_card:s10.shot8"} {"timestamp": "2026-07-09T21:27:04.773637+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C06 (visible=[]) render_prompt_card:s18.shot14"} {"timestamp": "2026-07-09T21:27:04.783625+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C02 (visible=['C01'])"} {"timestamp": "2026-07-09T21:27:04.783687+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C02 (visible=['C01']) render_prompt_card:s20.shot2"} {"timestamp": "2026-07-09T21:27:04.891147+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail completed (completed=60/60, failed=0)"} {"timestamp": "2026-07-09T21:27:04.920344+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:27:04.972488+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T21:27:04.984262+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T21:27:04.996480+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:27:04.998495+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:27:05.005884+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 26 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T21:27:05.014878+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-09T21:27:05.016058+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_detail, repaired=0)"} INFO: 127.0.0.1:56481 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56481 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:27:20.362156+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:shot_dependency_t2i (Step shot_dependency_t2i for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56481 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/shot_dependency_t2i?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:27:20.372458+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i started (run_id=00a953e4-88cb-458f-ad78-57be0f769b0b, model=gpt-mini)"} 06:27:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:27:20.399576+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:27:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:27:33.334588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:27:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:27:33.337135+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-09T21:27:33.352419+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L01 (3 shots) — LLM OK"} 06:27:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:27:33.355368+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:27:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:27:41.214930+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:27:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:27:41.217495+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-09T21:27:41.233031+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L02 (2 shots) — LLM OK"} 06:27:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:27:41.235509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56492 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:27:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:27:55.810742+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:27:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:27:55.814339+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-09T21:27:55.830862+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L04 (4 shots) — LLM OK"} 06:27:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:27:55.833522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56501 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:28:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:28:23.098539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:28:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:28:23.102123+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-09T21:28:23.119415+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L05 (15 shots) — LLM OK"} 06:28:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:28:23.122428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:28:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:28:32.980058+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:28:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:28:32.982700+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-09T21:28:32.997994+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L06 (3 shots) — LLM OK"} 06:28:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:28:33.000833+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:28:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:28:42.871149+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:28:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:28:42.874880+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-09T21:28:42.888463+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L07 (2 shots) — LLM OK"} 06:28:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:28:42.891578+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56517 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:28:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:28:51.363576+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:28:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:28:51.366099+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-09T21:28:51.380565+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L10 (3 shots) — LLM OK"} 06:28:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:28:51.383940+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:29:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:29:04.945540+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:29:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:29:04.948134+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-09T21:29:04.963449+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L11 (4 shots) — LLM OK"} 06:29:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:29:04.966083+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:29:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:29:12.440640+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:29:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:29:12.442323+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-09T21:29:12.455490+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L12 (2 shots) — LLM OK"} 06:29:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:29:12.458267+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56524 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:29:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:29:25.805188+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:29:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:29:25.807621+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-09T21:29:25.823035+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L13 (5 shots) — LLM OK"} 06:29:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:29:25.825468+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:29:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:29:34.700280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:29:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:29:34.702863+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-09T21:29:34.718108+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L09 (2 shots) — LLM OK"} 06:29:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:29:34.720756+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:29:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:29:42.085416+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:29:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:29:42.088014+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-09T21:29:42.100934+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L15 (2 shots) — LLM OK"} 06:29:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:29:42.103579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:29:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:29:50.241877+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:29:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:29:50.245481+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-09T21:29:50.260427+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L16 (2 shots) — LLM OK"} 06:29:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:29:50.263495+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56546 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:30:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:30:03.496032+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:30:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:30:03.498601+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-09T21:30:03.514374+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L17 (3 shots) — LLM OK"} 06:30:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:30:03.516863+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 06:30:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:30:12.675671+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:30:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:30:12.678356+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-09T21:30:12.694623+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L18 (3 shots) — LLM OK"} 06:30:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T21:30:12.697638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:56552 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:30:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:30:24.937876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:30:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T21:30:24.940389+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-09T21:30:24.954893+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L19 (3 shots) — LLM OK"} {"timestamp": "2026-07-09T21:30:24.957316+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: 26/60 linked (LLM-based)"} {"timestamp": "2026-07-09T21:30:24.974131+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i completed (completed=60/60, failed=0)"} {"timestamp": "2026-07-09T21:30:25.028363+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:30:25.102711+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T21:30:25.120458+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T21:30:25.136415+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:30:25.138951+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:30:25.147485+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T21:30:25.151989+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['t2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-09T21:30:25.153438+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=shot_dependency_t2i, repaired=0)"} INFO: 127.0.0.1:56561 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56561 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:30:50.732362+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:t2i_review (Step t2i_review for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56561 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/t2i_review?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:30:50.748020+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review started (run_id=fe8e007d-cc5e-4572-800e-78b231694838, model=gpt)"} 06:30:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:30:50.780537+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56569 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:31:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:31:32.888000+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:31:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:31:32.890688+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:31:32.905978+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L11 [awkward_translation]: 한국어의 '다세대 빌라'는 한국 도시 주거 맥락의 자연스러운 저층 공동주택 표현인데, 영어 'villa'는 고급 단독 별장 뉘앙스로 읽혀 어색합"} {"timestamp": "2026-07-09T21:31:32.906090+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L04 [awkward_translation]: 한국어의 '빌라 옥상'은 한국식 저층 주거 건물의 옥상 맥락인데, 영어 'villa rooftop'은 서구식 고급 별장 옥상처럼 읽혀 어색합니다"} {"timestamp": "2026-07-09T21:31:32.906151+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L16 [awkward_translation]: 한국어 'PC방'은 한국 로컬 업종명으로 자연스러운 표현인데, 영어의 'PC cafe (internet cafe)'는 현지적 뉘앙스가 약하고 다"} {"timestamp": "2026-07-09T21:31:32.906203+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P09 [awkward_translation]: 한국어 설명의 '지붕 위 둥근 원'은 원형 요소를 뜻하지만, T2I의 'large circular structure ... resembling "} 06:31:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:31:32.910997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56582 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:32:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:32:01.047869+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:32:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:32:01.051359+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:32:01.064577+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 1/6: 10 items, 1 issues"} 06:32:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:32:01.067191+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56590 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56601 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:33:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:33:06.801946+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:33:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:33:06.804560+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:33:06.818889+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 2/6: 10 items, 0 issues"} 06:33:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:33:06.822017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56609 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:33:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:33:26.010857+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:33:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:33:26.014464+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:33:26.028507+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 3/6: 10 items, 0 issues"} 06:33:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:33:26.031486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56623 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56631 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:34:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:34:28.256507+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:34:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:34:28.258657+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:34:28.271220+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 4/6: 10 items, 1 issues"} 06:34:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:34:28.274339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56650 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:34:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:34:57.842388+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:34:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:34:57.845028+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:34:57.860263+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 5/6: 10 items, 3 issues"} 06:34:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:34:57.863353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56657 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:35:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:35:25.270399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:35:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:35:25.272541+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:35:25.285430+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 6/6: 10 items, 1 issues"} {"timestamp": "2026-07-09T21:35:25.285853+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review v1: entity 4 diagnostics, scene 6 diagnostics (mutation=0)"} {"timestamp": "2026-07-09T21:35:25.299829+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T21:35:25.354657+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:35:25.432283+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T21:35:25.454418+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T21:35:25.470122+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:35:25.472631+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:35:25.486003+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T21:35:25.490754+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-09T21:35:25.492127+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=t2i_review, repaired=0)"} INFO: 127.0.0.1:56666 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56666 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:35:51.205321+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:zoom_continuity_anchor (Step zoom_continuity_anchor for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56666 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/zoom_continuity_anchor?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:35:51.216454+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor started (run_id=11e9aca1-00ef-4edf-a5bc-c7bce7766610, model=gpt)"} 06:35:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:35:51.244183+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56674 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:36:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:36:21.404512+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:36:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:36:21.407124+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:36:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:36:21.421562+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:36:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:36:30.914445+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:36:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:36:30.916919+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:36:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:36:30.926817+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:36:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:36:37.540037+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:36:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:36:37.542356+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:36:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:36:37.552089+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56685 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56692 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:37:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:37:29.520947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:37:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:37:29.523011+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:37:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:37:29.536121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:37:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:37:37.297583+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:37:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:37:37.300992+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:37:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:37:37.311911+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:37:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:37:46.861898+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:37:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:37:46.864143+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:37:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:37:46.875435+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56706 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56712 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:38:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:38:31.431291+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:38:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:38:31.434736+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:38:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:38:31.448540+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:38:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:38:36.364266+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:38:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:38:36.366897+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:38:36.394764+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor completed (completed=3/3, failed=0)"} {"timestamp": "2026-07-09T21:38:36.457585+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:38:36.542783+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T21:38:36.564398+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T21:38:36.579091+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:38:36.581476+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:38:36.589757+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T21:38:36.594101+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-09T21:38:36.595540+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=zoom_continuity_anchor, repaired=0)"} INFO: 127.0.0.1:56724 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56724 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:38:51.513231+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:outdoor_site_layout (Step outdoor_site_layout for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56724 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/outdoor_site_layout?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:38:51.579593+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:38:51.655187+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T21:38:51.677366+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T21:38:51.691913+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:38:51.694144+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:38:51.703922+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T21:38:51.708109+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outdoor_place_spec', 'outdoor_shot_grounding']"} {"timestamp": "2026-07-09T21:38:51.709358+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=outdoor_site_layout, repaired=0)"} INFO: 127.0.0.1:56731 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56731 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:39:21.598243+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:outdoor_place_spec (Step outdoor_place_spec for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56731 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/outdoor_place_spec?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:39:21.613028+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec started (run_id=ffc2ccd8-bbcf-4733-9718-4cb585301834, model=gpt)"} 06:39:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:39:21.625101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56750 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:40:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:40:15.269925+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:40:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:40:15.272928+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:40:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:40:15.291876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56758 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:40:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:40:50.287069+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:40:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:40:50.289649+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:40:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:40:50.308334+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56770 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56776 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:41:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:41:42.178025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:41:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:41:42.180136+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:41:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:41:42.197328+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56785 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56792 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:42:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:42:26.951040+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:42:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:42:26.952516+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:42:26.969055+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_commercial_street 매핑 씬 없음 — skip"} 06:42:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:42:26.971535+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56801 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56808 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:43:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:43:33.933395+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:43:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:43:33.936002+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:43:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:43:33.957225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56828 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:43:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:43:55.561766+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:43:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:43:55.563302+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:43:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:43:55.580100+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56860 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:44:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:44:24.845074+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:44:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:44:24.847398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:44:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:44:24.864649+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56876 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:44:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:44:56.647235+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:44:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:44:56.650007+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:44:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:44:56.668995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56886 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:45:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:45:39.084748+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:45:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:45:39.088175+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:45:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:45:39.105495+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56895 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:45:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:45:57.533575+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:45:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:45:57.535567+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T21:45:57.551659+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_spec_step", "message": "outdoor_place_spec: group=bg_rural_restaurant_front 매핑 씬 없음 — skip"} {"timestamp": "2026-07-09T21:45:57.566553+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec completed (completed=12/12, failed=0)"} {"timestamp": "2026-07-09T21:45:57.615615+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T21:45:57.690517+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T21:45:57.709177+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T21:45:57.727461+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T21:45:57.730275+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T21:45:57.739518+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T21:45:57.744207+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outdoor_shot_grounding']"} {"timestamp": "2026-07-09T21:45:57.745696+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=outdoor_place_spec, repaired=0)"} INFO: 127.0.0.1:56902 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56902 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:46:22.294703+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:outdoor_place_canon (Step outdoor_place_canon for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:56902 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/outdoor_place_canon?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T21:46:22.303841+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon started (run_id=1fa07786-7dbb-4169-8abb-e05ad2cfd7c4, model=gpt)"} OPIK: Started logging traces to the "theroad-scene-lab" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=019f48d8-b65b-7577-83d7-9786f5e4afe2&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. 06:46:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:46:46.274726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:56924 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:56932 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:47:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:47:42.186293+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:47:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:47:42.198616+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:47:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:47:42.219994+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56946 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:48:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:48:01.399462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:48:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:48:01.412081+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:48:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:48:01.438933+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/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:48:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:48:39.152019+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:48:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:48:39.153575+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:48:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:48:39.170088+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56976 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:48:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:48:56.650903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:48:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:48:56.663595+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:56990 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57013 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57023 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57035 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57045 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57061 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:52:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:52:03.562517+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57070 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:52:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:52:51.365301+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:52:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:52:51.378526+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:52:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:52:51.400600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57087 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:53:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:53:16.240226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:53:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:53:16.252086+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:53:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:53:16.275910+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57100 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:53:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:53:27.533352+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:53:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:53:27.544996+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:53:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:53:27.553912+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 06:53:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:53:50.607292+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:53:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:53:50.619011+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:57117 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57129 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57149 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57158 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57173 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57183 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57200 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:56:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:56:57.597431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57210 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:57:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:57:25.514760+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:57:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:57:25.528066+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:57:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:57:25.548778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57222 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:57:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:57:57.787191+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:57:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:57:57.801360+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 06:57:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T21:57:57.827075+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 06:58:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:58:11.482083+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:58:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T21:58:11.493312+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 06:58:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T21:58:11.501751+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57234 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 06:58:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T21:58:34.089950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 06:58:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T21:58:34.101784+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:57256 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57266 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57287 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57299 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57310 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57325 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:01:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:01:36.420378+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57341 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:02:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:02:17.997030+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:02:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:02:18.017314+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:02:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:02:18.032505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57354 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:02:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:02:40.530413+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:02:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:02:40.543502+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 07:02:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:02:40.570843+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57366 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:03:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:03:04.174505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:03:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:03:04.184721+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:03:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:03:04.193124+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:03:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:03:14.941629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:03:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:03:14.956169+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:57377 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57396 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57406 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57424 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57441 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57453 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:06:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:06:23.749851+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57470 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57481 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:07:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:07:14.122745+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:07:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:07:14.132876+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:07:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:07:14.154073+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57493 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:07:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:07:43.073000+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:07:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:07:43.085442+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 07:07:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:07:43.110322+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57509 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:08:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:08:12.570182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:08:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:08:12.576422+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:08:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:08:12.582959+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57521 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:08:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:08:32.944842+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:08:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:08:32.959176+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:57541 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57551 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57564 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57582 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57597 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57611 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:11:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:11:37.626521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57622 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:12:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:12:01.877432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:12:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:12:01.895544+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:12:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:12:01.905763+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57632 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:12:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:12:26.183285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:12:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:12:26.194225+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 07:12:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:12:26.216610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:12:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:12:38.817958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:12:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:12:38.826965+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:12:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:12:38.834981+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:12:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:12:49.022806+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:12:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:12:49.032287+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:57648 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57662 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57681 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57696 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57707 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57728 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:15:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:15:41.692197+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/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:16:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:16:09.398115+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:16:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:16:09.411963+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:16:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:16:09.433006+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57781 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:16:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:16:49.586376+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:16:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:16:49.596793+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 07:16:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:16:49.619741+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57798 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57807 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:17:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:17:38.587806+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:17:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:17:38.597446+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:17:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:17:38.606175+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57820 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:18:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:18:11.338185+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:18:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:18:11.350921+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:57834 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57849 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57861 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57878 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57894 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57906 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57919 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:21:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:21:44.620815+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:57938 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:57951 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:22:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:22:26.026464+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:22:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:22:26.038585+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:22:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:22:26.059558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57967 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:22:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:22:57.171440+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:22:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:22:57.185166+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 07:22:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:22:57.211385+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:23:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:23:11.634377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:23:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:23:11.644941+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:23:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:23:11.654197+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:57978 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:23:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:23:32.859467+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:23:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:23:32.871025+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:57997 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58007 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58019 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58037 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58052 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58065 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:26:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:26:34.409989+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58078 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:27:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:27:07.405721+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:27:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:27:07.417768+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:27:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:27:07.438705+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:27:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:27:23.710522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:27:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:27:23.722348+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 07:27:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:27:23.747732+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58092 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:27:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:27:51.279300+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:27:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:27:51.290797+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:27:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:27:51.300694+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58105 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:28:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:28:17.362432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:28:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:28:17.374958+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:58116 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58137 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58146 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58160 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58177 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58193 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:31:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:31:06.146178+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58204 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:31:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:31:33.856342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:31:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:31:33.874133+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:31:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:31:33.887924+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58220 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:32:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:32:13.392916+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:32:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:32:13.405728+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 07:32:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:32:13.431495+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58230 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:32:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:32:40.224263+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:32:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:32:40.235922+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:32:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-07-09T22:32:40.245128+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:58245 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:33:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:33:07.754843+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:33:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-07-09T22:33:07.765926+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:58268 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58287 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58297 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58311 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58328 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:35:39.924512+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon completed (completed=10/10, failed=0)"} {"timestamp": "2026-07-09T22:35:39.983625+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:35:40.066808+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:35:40.086888+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:35:40.103997+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:35:40.106777+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:35:40.115780+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:35:40.120496+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode 39263663-935e-4316-b481-837ff5731dfd status NOT advanced — incomplete steps: ['outdoor_shot_grounding']"} {"timestamp": "2026-07-09T22:35:40.121958+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=outdoor_place_canon, repaired=0)"} INFO: 127.0.0.1:58340 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58340 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:35:56.579013+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:outdoor_shot_grounding (Step outdoor_shot_grounding for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:58340 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/outdoor_shot_grounding?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:35:56.593524+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_shot_grounding started (run_id=1ac867e1-3aca-499c-893f-441d817108d6, model=gpt)"} 07:35:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:35:56.610051+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:36:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:36:14.308476+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:36:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:36:14.319729+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:36:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:36:14.332894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58352 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58366 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:37:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:37:11.806685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:37:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:37:11.818384+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:37:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:37:11.830891+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:37:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:37:21.175482+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:37:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:37:21.188017+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:37:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:37:21.200912+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58377 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:37:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:37:40.332420+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:37:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:37:40.342952+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:37:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:37:40.357606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58392 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:38:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:38:00.513182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:38:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:38:00.525579+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:38:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:38:00.541490+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58403 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:38:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:38:30.978830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:38:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:38:30.989810+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:38:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:38:31.005123+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:38:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:38:49.095495+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:38:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:38:49.108169+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:38:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:38:49.121777+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58419 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:39:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:39:08.130212+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:39:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:39:08.142773+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:39:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:39:08.157190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58433 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:39:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:39:32.736327+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:39:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:39:32.748054+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:39:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:39:32.761674+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:39:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:39:51.511132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:39:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:39:51.522009+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:39:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:39:51.536712+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58450 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:40:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:40:08.268627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:40:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:40:08.277366+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:40:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:40:08.291717+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:40:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:40:25.224869+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:40:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:40:25.237018+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:40:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:40:25.251433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58471 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:40:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:40:52.460654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:40:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:40:52.471700+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:40:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:40:52.487584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58486 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:41:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:41:01.476610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:41:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:41:01.488782+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:41:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:41:01.502513+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:41:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:41:19.870599+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:41:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:41:19.883372+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:41:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:41:19.899298+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58497 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:41:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:41:40.194742+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:41:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:41:40.206708+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:41:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:41:40.220023+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:41:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:41:53.606767+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:41:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:41:53.616669+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:41:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:41:53.630962+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58511 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:42:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:42:12.461917+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:42:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:42:12.474604+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:42:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:42:12.489459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58521 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:42:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:42:27.612553+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:42:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:42:27.623883+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:42:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:42:27.637363+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:42:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:42:45.540286+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:42:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:42:45.552174+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:42:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:42:45.566816+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58535 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:43:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:43:07.793826+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:43:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:43:07.806610+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:43:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:43:07.820473+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:43:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:43:24.974582+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:43:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:43:24.986927+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:43:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:43:25.001589+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58550 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:43:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:43:53.911132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:43:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:43:53.918609+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:43:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:43:53.933662+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58565 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:44:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:44:11.290983+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:44:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:44:11.302818+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:44:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:44:11.317562+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58582 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:44:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:44:38.670892+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:44:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:44:38.681630+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:44:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:44:38.695042+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58594 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:45:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:45:06.421992+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:45:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:45:06.433868+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:45:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:45:06.448879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:45:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:45:25.767077+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:45:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:45:25.776556+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:45:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:45:25.790889+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58615 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:45:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:45:44.699780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:45:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:45:44.709792+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:45:44.731738+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_shot_grounding completed (completed=28/28, failed=0)"} {"timestamp": "2026-07-09T22:45:44.789108+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:45:44.865563+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:45:44.886707+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:45:44.908539+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:45:44.911434+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:45:44.924491+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:45:44.931152+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=outdoor_shot_grounding, repaired=0)"} INFO: 127.0.0.1:58625 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58625 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:45:57.465904+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:world_guide (Step world_guide for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:58625 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/world_guide?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:45:57.476447+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide started (run_id=dd31b7fd-98bc-4d61-89f4-44a29fda64f0, model=gpt)"} 07:45:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:45:57.503269+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58641 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58655 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:46:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:46:58.494654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:46:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:46:58.496474+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:46:58.525586+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-09T22:46:58.578121+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:46:58.650272+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:46:58.670968+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:46:58.686463+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:46:58.689167+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:46:58.698495+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:46:58.704667+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=world_guide, repaired=0)"} INFO: 127.0.0.1:58666 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58666 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:47:27.616599+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:space_set_bg (Step space_set_bg for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:58666 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/space_set_bg?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:47:27.659987+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:47:27.735594+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:47:27.762348+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:47:27.785375+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:47:27.787857+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:47:27.797916+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:47:27.804602+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=space_set_bg, repaired=0)"} INFO: 127.0.0.1:58677 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58677 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:47:57.682859+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:ref_image_gen (Step ref_image_gen for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:58677 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/ref_image_gen?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:47:57.687864+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen started (run_id=5c0030b9-e3a7-4434-bcd4-387fc96a0bb4, model=gemini-image)"} {"timestamp": "2026-07-09T22:47:57.708480+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:47:57.742370+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:47:57.755133+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:47:57.766205+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:47:57.768182+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:47:57.774796+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:47:57.779220+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} 07:47:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:47:57.811138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58689 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:48:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:48:48.817963+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:48:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:48:48.820246+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:48:48.884132+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민숙 (character, t2i_count=4, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884292+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 한국인 남성 (character, t2i_count=4, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884361+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 한국인 여성 (character, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884403+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 검은 인영 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884440+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 백팩 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884475+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 혜수 (character, t2i_count=7, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884509+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 스마트폰 (prop, t2i_count=3, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884540+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 굵은 밧줄 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884595+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 인형 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884628+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 작은 메모지 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884664+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 낡은 사진 (prop, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884700+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 경찰 통제선 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884730+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 석창포 잎 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884762+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 남자 직원 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884794+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 인우 (character, t2i_count=5, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884823+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 서류 뭉치 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884854+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 수리영 (character, t2i_count=27, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884883+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민숙 (변형 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.884915+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 김형사 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884944+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 종이 지도 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.884973+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 어린 여자아이 (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-07-09T22:48:48.885004+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 종이 전단지 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:48:48.904028+00:00", "level": "INFO", "logger": "app.services.reference_phase1_service", "message": "visual_continuity_anchor: prop P05 ref prompt overlay 적용 (canon 비변경)"} {"timestamp": "2026-07-09T22:48:48.904237+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 수리영 (type=character)"} {"timestamp": "2026-07-09T22:48:48.904404+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 스마트폰 (type=prop)"} {"timestamp": "2026-07-09T22:48:48.904499+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 혜수 (type=character)"} {"timestamp": "2026-07-09T22:48:48.904714+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (type=character)"} {"timestamp": "2026-07-09T22:48:48.905240+00:00", "level": "INFO", "logger": "app.services.reference_phase1_service", "message": "visual_continuity_anchor: prop P09 ref prompt overlay 적용 (canon 비변경)"} {"timestamp": "2026-07-09T22:48:48.905749+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 스마트폰 (prop)"} {"timestamp": "2026-07-09T22:48:48.906264+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 낡은 사진 (type=prop)"} {"timestamp": "2026-07-09T22:48:48.906528+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 수리영 (character)"} {"timestamp": "2026-07-09T22:48:48.906765+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 혜수 (character)"} {"timestamp": "2026-07-09T22:48:48.906979+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민숙 (character)"} {"timestamp": "2026-07-09T22:48:48.907155+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 인우 (type=character)"} {"timestamp": "2026-07-09T22:48:48.907217+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 여성 (type=character)"} {"timestamp": "2026-07-09T22:48:48.907314+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 남성 (type=character)"} {"timestamp": "2026-07-09T22:48:48.907387+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 낡은 사진 (prop)"} {"timestamp": "2026-07-09T22:48:48.907863+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 한국인 여성 (character)"} {"timestamp": "2026-07-09T22:48:48.908104+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 인우 (character)"} {"timestamp": "2026-07-09T22:48:48.908274+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 한국인 남성 (character)"} 07:48:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:48:55.695618+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:48:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:48:56.378317+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:48:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:48:56.403671+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:48:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:48:56.441650+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:48:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:48:57.123278+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:48:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:48:57.192677+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:48:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:48:57.386407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:58719 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:48:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:48:57.959973+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:48:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:48:57.967520+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:48:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:48:58.294509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:48:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:48:58.668395+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:48:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:48:58.676134+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:48:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:48:58.823130+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:48:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:48:58.830911+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:48:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:48:59.150561+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:48:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:48:59.158822+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:48:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:48:59.433803+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:48:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:48:59.441566+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:49:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:00.051812+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:49:00.058831+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:49:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:00.934228+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:49:00.941312+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:49:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:01.147272+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:49:01.154100+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:49:01.187261+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (변형 상태) (type=character)"} {"timestamp": "2026-07-09T22:49:01.187641+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 어린 여자아이 (type=character)"} {"timestamp": "2026-07-09T22:49:01.188736+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민숙 (변형 상태) (character)"} {"timestamp": "2026-07-09T22:49:01.201992+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 어린 여자아이 (character)"} 07:49:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:49:09.475437+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:49:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:49:09.680858+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:49:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:11.383120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:49:11.391729+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 07:49:12 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:12.845813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:12 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:49:12.854216+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:49:12.888752+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen completed (completed=22/51, failed=0)"} {"timestamp": "2026-07-09T22:49:12.927386+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:49:12.983698+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:49:13.000999+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:49:13.021883+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:49:13.024548+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:49:13.036991+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:49:13.042778+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=ref_image_gen, repaired=0)"} INFO: 127.0.0.1:58740 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58740 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:49:27.837751+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:composite_image_gen (Step composite_image_gen for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:58740 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/composite_image_gen?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:49:27.852348+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen started (run_id=0cc86092-5fa2-4dac-89c4-ff6a2be4b4b0, model=gemini-image)"} {"timestamp": "2026-07-09T22:49:27.913233+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:49:27.988341+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:49:28.010647+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:49:28.026669+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:49:28.029257+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:49:28.038666+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:49:28.044468+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-09T22:49:28.110376+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: reference — 10 completed, 0 failed"} {"timestamp": "2026-07-09T22:49:28.128497+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민숙 (character, t2i_count=4, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.128580+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 혜수 (character, t2i_count=7, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.128622+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 스마트폰 (prop, t2i_count=3, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.128650+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 굵은 밧줄 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128676+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 인형 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128702+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 작은 메모지 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128729+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 낡은 사진 (prop, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.128755+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 한국인 남성 (character, t2i_count=4, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.128779+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 경찰 통제선 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128804+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 한국인 여성 (character, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.128827+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 검은 인영 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128853+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 백팩 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128875+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 석창포 잎 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128902+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 남자 직원 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128936+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 인우 (character, t2i_count=5, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.128958+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 서류 뭉치 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.128988+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 수리영 (character, t2i_count=27, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.129011+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민숙 (변형 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.129048+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 김형사 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.129070+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 종이 지도 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.129094+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 어린 여자아이 (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-07-09T22:49:28.129117+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 종이 전단지 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-07-09T22:49:28.147402+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Generating 8 standalone outfit images (parallel)"} 07:49:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T22:49:28.150462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 07:49:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:31.771725+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T22:49:31.773418+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 07:49:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T22:49:31.784311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 07:49:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:35.245769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T22:49:35.248310+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 07:49:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T22:49:35.257727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 07:49:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:39.675154+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T22:49:39.678582+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 07:49:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T22:49:39.686611+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 07:49:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:43.652311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T22:49:43.655835+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 07:49:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T22:49:43.664688+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 07:49:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:47.121707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T22:49:47.123506+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 07:49:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T22:49:47.131483+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 07:49:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:50.397408+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T22:49:50.400014+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 07:49:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T22:49:50.409809+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 07:49:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:53.985897+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T22:49:53.988610+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 07:49:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-09T22:49:53.995371+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:58759 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:49:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:49:57.945908+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-09T22:49:57.948810+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-09T22:49:57.960955+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 등산복 (type=outlook)"} {"timestamp": "2026-07-09T22:49:57.961713+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 홈웨어 (type=outlook)"} {"timestamp": "2026-07-09T22:49:57.962172+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 캐주얼활동복 (type=outlook)"} {"timestamp": "2026-07-09T22:49:57.962595+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 어부작업복 (type=outlook)"} {"timestamp": "2026-07-09T22:49:57.963011+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 야간외출복 (type=outlook)"} {"timestamp": "2026-07-09T22:49:57.963376+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 미용작업복 (type=outlook)"} {"timestamp": "2026-07-09T22:49:57.963891+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 피투성이외출복 (type=outlook)"} {"timestamp": "2026-07-09T22:49:57.964252+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 형사자켓 (type=outlook)"} {"timestamp": "2026-07-09T22:49:57.964476+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 등산복 (outlook)"} {"timestamp": "2026-07-09T22:49:57.965056+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 홈웨어 (outlook)"} {"timestamp": "2026-07-09T22:49:57.966271+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 캐주얼활동복 (outlook)"} {"timestamp": "2026-07-09T22:49:57.966953+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 미용작업복 (outlook)"} {"timestamp": "2026-07-09T22:49:57.967527+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 피투성이외출복 (outlook)"} {"timestamp": "2026-07-09T22:49:57.967843+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 어부작업복 (outlook)"} {"timestamp": "2026-07-09T22:49:57.968221+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 야간외출복 (outlook)"} {"timestamp": "2026-07-09T22:49:57.968502+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 형사자켓 (outlook)"} 07:50:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:05.183116+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:05.567348+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:05.900048+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:05.949668+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:06.646534+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:06.720118+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:07.191282+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:07.195356+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:07.203504+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 형사자켓"} 07:50:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:07.588757+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:07.677031+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:09.035466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:09.042065+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:09.052052+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 캐주얼활동복"} 07:50:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:09.113380+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:09.119724+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:09.125045+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 홈웨어"} 07:50:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:09.168406+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:09.175521+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:09.182884+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 야간외출복"} 07:50:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:09.741179+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:09.747977+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:09.756162+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 피투성이외출복"} 07:50:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:10.946270+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:10.954508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:10.963424+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 미용작업복"} 07:50:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:11.878904+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:11.886893+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:11.895656+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 등산복"} 07:50:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:13.407854+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:13.415170+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:13.421693+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 어부작업복"} {"timestamp": "2026-07-09T22:50:13.478926+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Generating 8 composite images (face + outfit refs)"} {"timestamp": "2026-07-09T22:50:13.482077+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 인우 (어부작업복) (type=composite)"} {"timestamp": "2026-07-09T22:50:13.482694+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (피투성이외출복) (type=composite)"} {"timestamp": "2026-07-09T22:50:13.483083+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (홈웨어) (type=composite)"} {"timestamp": "2026-07-09T22:50:13.483830+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 수리영 (캐주얼활동복) (type=composite)"} {"timestamp": "2026-07-09T22:50:13.484051+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 남성 (등산복) (type=composite)"} {"timestamp": "2026-07-09T22:50:13.484586+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 여성 (야간외출복) (type=composite)"} {"timestamp": "2026-07-09T22:50:13.484865+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 인우 (어부작업복) (composite)"} {"timestamp": "2026-07-09T22:50:13.498672+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민숙 (피투성이외출복) (composite)"} {"timestamp": "2026-07-09T22:50:13.508122+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 수리영 (미용작업복) (type=composite)"} {"timestamp": "2026-07-09T22:50:13.508413+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 혜수 (형사자켓) (type=composite)"} {"timestamp": "2026-07-09T22:50:13.508604+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 수리영 (캐주얼활동복) (composite)"} {"timestamp": "2026-07-09T22:50:13.518796+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민숙 (홈웨어) (composite)"} {"timestamp": "2026-07-09T22:50:13.528658+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 한국인 여성 (야간외출복) (composite)"} {"timestamp": "2026-07-09T22:50:13.538050+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 한국인 남성 (등산복) (composite)"} {"timestamp": "2026-07-09T22:50:13.548015+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 혜수 (형사자켓) (composite)"} {"timestamp": "2026-07-09T22:50:13.557343+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 수리영 (미용작업복) (composite)"} 07:50:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:22.540217+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:23.370014+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:23.439291+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:23.874810+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:24.428537+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:24.539986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:24.880431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:25.036244+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:25.039362+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:25.042223+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 한국인 남성 + 등산복"} 07:50:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:25.201146+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:25.201867+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:25.219089+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 수리영 + 캐주얼활동복"} 07:50:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:25.295464+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:27.158370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:27.165121+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:27.175009+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 한국인 여성 + 야간외출복"} INFO: 127.0.0.1:58812 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:50:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:28.074015+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:28.080071+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:28.082373+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 민숙 (피투성이외출복) — regenerating"} 07:50:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:28.559496+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:28.565844+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:28.574199+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 수리영 + 미용작업복"} 07:50:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:28.860036+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:28.864934+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:28.872745+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 인우 + 어부작업복"} 07:50:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:29.180537+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:29.187029+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:29.196812+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 혜수 + 형사자켓"} 07:50:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:31.380415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:31.387643+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:31.394404+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 민숙 + 홈웨어"} 07:50:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:50:40.418067+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:50:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:50:48.630985+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:50:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:50:48.640161+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:50:48.642481+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 민숙 (피투성이외출복): winner=image_2 reason=두 이미지 모두 붉은 피가 명확히 보이지는 않지만, image_2는 상의에 큰 얼룩과 찢어진 부분이 더 뚜렷해 ‘피투성이/오염된 외출복’에 더 가깝게 보입니다. image_1은 주로 찢어진 옷일 뿐 얼룩 표현이 약합니다."} {"timestamp": "2026-07-09T22:50:48.652476+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 민숙 + 피투성이외출복"} {"timestamp": "2026-07-09T22:50:48.712839+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen completed (completed=8/8, failed=0)"} {"timestamp": "2026-07-09T22:50:48.775622+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:50:48.860048+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:50:48.882320+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:50:48.897783+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:50:48.900215+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:50:48.909535+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:50:48.916005+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=composite_image_gen, repaired=0)"} INFO: 127.0.0.1:58826 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58826 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:50:57.983346+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:character_state_variant (Step character_state_variant for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:58826 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/character_state_variant?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:50:57.993406+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant started (run_id=f45b0a08-c6f3-488f-81e0-cdd888a560c7, model=gemini-image)"} {"timestamp": "2026-07-09T22:50:57.995977+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 4 characters with state variants: ['한국인 남성', '한국인 여성', '민숙', '수리영']"} {"timestamp": "2026-07-09T22:50:58.083326+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 남성 (severely_injured) (type=character_state_variant)"} 07:51:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:51:08.177279+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:51:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:51:09.752494+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:51:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:51:09.758461+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:51:09.768933+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 한국인 남성 (severely_injured) — generated"} {"timestamp": "2026-07-09T22:51:09.777065+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 한국인 여성 (severely_injured) (type=character_state_variant)"} 07:51:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:51:17.802558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:51:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:51:19.308515+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:51:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:51:19.316006+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:51:19.322603+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 한국인 여성 (severely_injured) — generated"} {"timestamp": "2026-07-09T22:51:19.329573+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (severely_injured) (type=character_state_variant)"} INFO: 127.0.0.1:58843 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 07:51:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:51:29.627401+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:51:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:51:31.332354+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:51:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:51:31.340329+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:51:31.347913+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 민숙 (severely_injured) — generated"} {"timestamp": "2026-07-09T22:51:31.352600+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민숙 (dead) (type=character_state_variant)"} 07:51:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:51:41.916207+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:51:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:51:43.321052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:51:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:51:43.328029+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:51:43.339665+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 민숙 (dead) — generated"} {"timestamp": "2026-07-09T22:51:43.349339+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 수리영 (unconscious) (type=character_state_variant)"} 07:51:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-09T22:51:51.534785+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 07:51:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-09T22:51:56.442673+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:51:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-09T22:51:56.450619+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-09T22:51:56.460916+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 수리영 (unconscious) — generated"} {"timestamp": "2026-07-09T22:51:56.577801+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant completed (completed=5/5, failed=0)"} {"timestamp": "2026-07-09T22:51:56.639840+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T22:51:56.727082+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T22:51:56.747667+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T22:51:56.764879+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T22:51:56.767689+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T22:51:56.778722+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T22:51:56.784720+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=character_state_variant, repaired=0)"} INFO: 127.0.0.1:58860 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58860 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:51:58.088913+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:background_render (Step background_render for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:58860 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/background_render?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:51:58.098489+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render started (run_id=9c653bee-7a66-4828-98c7-9bbd91ea0024, model=gpt)"} {"timestamp": "2026-07-09T22:51:58.102941+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: W22 직행 — 야외 bg 9개 plate skip: ['L04B01', 'L04B02', 'L04B03', 'L09B01', 'L11B01', 'L11B02', 'L14B01', 'L18B01', 'L18B02']"} {"timestamp": "2026-07-09T22:51:58.116416+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place 그룹 멤버십 21 loc — {'L01': 'bg_forest_path', 'L02': 'bg_urban_alley', 'L03': 'bg_rooftop_unit', 'L04': 'bg_rooftop_unit', 'L05': 'bg_rooftop_unit', 'L11': 'bg_rooftop_unit', 'L06': 'bg_coastal_road', 'L07': 'bg_animal_shelter', 'L08': 'bg_commercial_street', 'L09': 'bg_large_market', 'L10': 'bg_large_market', 'L15': 'bg_large_market', 'L12': 'bg_coastal_bus_stop', 'L13': 'bg_police_station', 'L14': 'bg_police_station', 'L16': 'bg_pc_room', 'L17': 'bg_foggy_harbor', 'L18': 'bg_small_fishing_boat', 'L19': 'bg_small_fishing_boat', 'L20': 'bg_open_sea', 'L21': 'bg_rural_restaurant_front'}"} INFO: 127.0.0.1:58872 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58884 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58895 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T22:53:38.784348+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L05 anchor=L05B05"} INFO: 127.0.0.1:58906 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58922 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58932 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58951 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58965 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58976 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:58990 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59002 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59011 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59024 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59035 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59051 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59065 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59083 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59093 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59105 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59117 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59129 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59139 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59151 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59160 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59177 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59189 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59207 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59217 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59232 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59241 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T23:06:56.123679+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L10 anchor=L10B02"} INFO: 127.0.0.1:59254 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59266 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59277 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T23:08:37.877617+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L15 anchor=L15B01"} INFO: 127.0.0.1:59290 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59306 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59317 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T23:10:16.009628+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L13 anchor=L13B02"} INFO: 127.0.0.1:59337 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59348 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59360 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59371 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59382 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59392 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59404 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T23:13:46.908752+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L19 anchor=L19B01"} INFO: 127.0.0.1:59416 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59432 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59442 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59461 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59470 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59484 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59498 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59509 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-09T23:17:35.854666+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: registered 16 ImageAssets (chain_bg + 0 location_aerial) (star anchor lineage: 11)"} {"timestamp": "2026-07-09T23:17:35.869310+00:00", "level": "WARNING", "logger": "app.core.steps.background_render_step", "message": "[VERIFY] background_render: path=phase7_master_plan expected=25 found=16 severity=partial missing=['L04B01', 'L04B02', 'L04B03', 'L09B01', 'L11B01', 'L11B02', 'L14B01', 'L18B01', 'L18B02']"} {"timestamp": "2026-07-09T23:17:35.869868+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[VERIFY-EXIT] step=background_render failed → partial: [\"9 chain_bg images missing (expected=25, found=16): ['L04B01', 'L04B02', 'L04B03', 'L09B01', 'L11B01', 'L11B02', 'L14B01', 'L18B01', 'L18B02']\"]"} {"timestamp": "2026-07-09T23:17:35.880130+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render partial (completed=16/16, failed=0)"} {"timestamp": "2026-07-09T23:17:35.930268+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-09T23:17:36.012335+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-09T23:17:36.032756+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-09T23:17:36.049562+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-09T23:17:36.052227+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-09T23:17:36.061455+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-09T23:17:36.067798+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=background_render, repaired=0)"} INFO: 127.0.0.1:59520 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59531 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59542 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59559 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59573 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59592 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59603 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59614 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59622 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59635 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59647 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59661 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59670 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59686 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59696 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59717 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59730 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59742 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59754 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59766 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59776 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59789 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59801 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59816 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59828 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59840 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59857 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59870 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59881 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59893 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59904 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59916 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59928 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59944 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59956 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59968 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59986 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:59998 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60007 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60019 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60031 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60043 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60054 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60071 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60082 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60097 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60118 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60130 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60140 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60151 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60163 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60177 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60189 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60204 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60214 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60226 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60243 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60257 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60269 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60280 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60291 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60303 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60313 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60330 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60343 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60354 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60373 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60385 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60395 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60407 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60418 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60430 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60441 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60457 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60466 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60478 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60497 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60509 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60520 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60531 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60544 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60556 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60568 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60584 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60597 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60608 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60624 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60638 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60650 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60662 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60672 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60683 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60693 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60706 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60722 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60733 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60750 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60763 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60773 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60786 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60798 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60809 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60820 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60834 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60850 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60862 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60881 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60892 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60903 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60918 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60928 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60941 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60953 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60965 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60981 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:60993 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61010 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61022 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61034 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61046 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61057 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61068 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61077 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61090 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61108 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61120 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61137 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61150 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61160 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61175 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61190 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61233 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61244 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61255 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61269 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61285 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61305 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61318 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61343 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61395 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61431 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61452 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61456 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:61456 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61474 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61577 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61602 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61667 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61700 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61714 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61725 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61738 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61748 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61761 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61774 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61784 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61803 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61817 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61832 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61844 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61853 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61864 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61875 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61885 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61897 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61910 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61925 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61936 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61952 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61963 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61971 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61983 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:61998 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62013 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62025 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62040 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62056 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62074 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62093 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62106 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62116 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62127 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62141 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62155 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62168 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62186 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62212 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62221 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62239 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62252 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62291 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62304 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62320 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62332 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62349 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62367 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62380 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62394 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62415 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62427 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62440 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62451 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62465 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62477 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62490 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62505 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62517 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62526 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62545 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62554 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62565 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62579 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62593 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62606 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62622 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62638 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62653 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62662 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62681 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62723 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62742 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62753 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62763 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62777 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62796 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62809 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62819 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62827 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62844 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62853 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62891 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62902 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62911 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62919 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62934 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:62934 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62937 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62950 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62962 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:62974 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T01:16:15.262901+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_image_pipeline (Step scene_image_pipeline for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:62974 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_image_pipeline?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T01:16:15.270152+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline started (run_id=bed29eae-a490-44a7-b069-8215341b08aa, model=mixed)"} {"timestamp": "2026-07-10T01:16:15.301694+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T01:16:15.353555+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T01:16:15.369558+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T01:16:15.383539+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T01:16:15.385694+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-10T01:16:15.393071+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-10T01:16:15.399570+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-10T01:16:15.434446+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T01:16:15.469869+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T01:16:15.485246+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T01:16:15.496682+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T01:16:15.498811+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-10T01:16:15.506279+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-10T01:16:15.511398+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-10T01:16:15.534962+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=39263663: expected=23 registered=23 disk=23 missing=0"} 10:16:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:16:15.546805+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:62994 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63003 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:17:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:17:16.027703+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:17:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:17:16.031438+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:17:16.050188+00:00", "level": "INFO", "logger": "app.modules.provenance", "message": "Operation logged: type=image_generation, module=world_guide_generator, status=success, duration=60502ms"} {"timestamp": "2026-07-10T01:17:16.115342+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 18 existing reference images for 51 entities"} {"timestamp": "2026-07-10T01:17:16.115430+00:00", "level": "INFO", "logger": "app.services.scene_validation_service", "message": "Skipping legacy scene image validation — scene_lvm_validation_mode=off (LVM 2 disabled by cost policy; only mode='full' enables it)."} {"timestamp": "2026-07-10T01:17:16.163933+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-07-10T01:17:16.178512+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 28 shot background mappings"} {"timestamp": "2026-07-10T01:17:16.196199+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "outdoor_direct: 28 shots direct-compose 활성"} {"timestamp": "2026-07-10T01:17:16.197477+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "zoom_continuity(batch): dep edge 추가 — still[44](zoom (23, 2)) → still[43](source (23, 1))"} {"timestamp": "2026-07-10T01:17:16.197898+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "immobilized_prev_frame(batch): dep edge 추가 — still[1](target (1, 5)) → still[0](env anchor (1, 4))"} INFO: 127.0.0.1:63043 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63053 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63066 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63076 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:19:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:19:23.799357+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:19:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:19:27.222665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} INFO: 127.0.0.1:63090 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63102 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63113 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63123 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:21:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:21:30.519624+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:21:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:21:35.008757+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} INFO: 127.0.0.1:63145 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63155 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63164 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63173 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63184 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:23:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:23:49.613349+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:23:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:23:52.699204+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} INFO: 127.0.0.1:63198 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63209 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63221 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63233 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:26:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:13.081161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:63243 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:26:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:17.536289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-07-10T01:26:22.302276+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s12-L05B06 shot=None status=denied reason=judge_no_need"} {"timestamp": "2026-07-10T01:26:22.302458+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s16-L13B03 shot=None status=denied reason=judge_no_need"} {"timestamp": "2026-07-10T01:26:22.302529+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s18-L05B04 shot=None status=denied reason=judge_no_need"} {"timestamp": "2026-07-10T01:26:22.302587+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s21-L13B01 shot=None status=denied reason=judge_no_need"} {"timestamp": "2026-07-10T01:26:22.302637+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s29-L19B01 shot=None status=denied reason=judge_no_need"} {"timestamp": "2026-07-10T01:26:22.302688+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide: precompute 완료 — guides=4, diagnostics=5, candidates_indoor_gate(indoor=7/outdoor=14 locs)"} {"timestamp": "2026-07-10T01:26:22.302802+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "Scene generation: 60 scenes in 12 batches (max_concurrent=15)"} {"timestamp": "2026-07-10T01:26:22.358527+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 4: state_variant=['C04']"} {"timestamp": "2026-07-10T01:26:22.415437+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 4: outdoor direct canon refs injected (batch, place=bg_forest_path)"} {"timestamp": "2026-07-10T01:26:22.431300+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 2 Shot 2: outdoor direct canon refs injected (batch, place=bg_urban_alley)"} {"timestamp": "2026-07-10T01:26:22.432117+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 4 Shot 2: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:26:22.464676+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 5 Shot 4: background_chain ref injected"} {"timestamp": "2026-07-10T01:26:22.494855+00:00", "level": "INFO", "logger": "app.core.steps.visual_continuity_anchor_step", "message": "registered_pose_guide: S1sh4 no-guide degrade (group=vca-s1-c04-immobilized, reason=no_environment_bg_plate)"} {"timestamp": "2026-07-10T01:26:22.496624+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 0: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.497802+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 8 Shot 1: background_chain ref injected"} {"timestamp": "2026-07-10T01:26:22.518776+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 11 Shot 4: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:26:22.520767+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 5: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.520988+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 6: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.543010+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "scene prompt override 적용(batch): S23sh1 (prompt_source=zoom_continuity_anchor, group=vca-s23-zoom-3)"} {"timestamp": "2026-07-10T01:26:22.543675+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 16 Shot 2: background_chain ref injected"} {"timestamp": "2026-07-10T01:26:22.553883+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15 Shot 1: outdoor direct canon refs injected (batch, place=bg_coastal_bus_stop)"} {"timestamp": "2026-07-10T01:26:22.554714+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 2: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.555720+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 6 Shot 1: outdoor direct canon refs injected (batch, place=bg_coastal_road)"} {"timestamp": "2026-07-10T01:26:22.556087+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 10: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.556520+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 19 Shot 5: outdoor direct canon refs injected (batch, place=bg_large_market)"} {"timestamp": "2026-07-10T01:26:22.556960+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 22 Shot 1: outdoor direct canon refs injected (batch, place=bg_police_station)"} {"timestamp": "2026-07-10T01:26:22.557369+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.557726+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 18: 1 prompts total, generating last 1 T2I + 1 angle"} 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:22.558805+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 1: outdoor direct canon refs injected (batch, place=bg_foggy_harbor)"} 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:22.560432+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 뉴스를 보며 굳어지는 민숙"} {"timestamp": "2026-07-10T01:26:22.580871+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 20 Shot 2: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:26:22.582135+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 29: 1 prompts total, generating last 1 T2I + 1 angle"} 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:22.582980+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 27: 1 prompts total, generating last 1 T2I + 1 angle"} 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:22.584615+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 9: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.584976+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 35: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.585363+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 사납게 날뛰는 맹견"} {"timestamp": "2026-07-10T01:26:22.585509+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 43: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.585855+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:26:22.586716+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 번화가를 가로지르는 수리영"} {"timestamp": "2026-07-10T01:26:22.600082+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 42: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.601104+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:26:22.601954+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 49: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.602369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:26:22.603024+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 불길한 예감과 위치 추적 지시"} 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:22.612953+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_pose_guide: S20sh2 attach SKIPPED — framing_scale='close' (close류 샷에 전신 pose 가이드 부착 금지, W-B 게이트)"} 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:22.614100+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:22.615920+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 좌표를 확인하는 수리영"} 10:26:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:22.619727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:26:22.620087+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 37: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:26:22.620168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:26:22.620710+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:26:22.621157+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:26:22.621609+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:26:22.621856+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 불안한 시선"} 10:26:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:28.004217+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:28.006799+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-10T01:26:28.009175+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: CCTV 위치 확인"} 10:26:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:28.287618+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:28.290607+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-10T01:26:28.292547+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 2 Shot 2 variation=var_1: ref contract violation — skip variation: required character_outlook 'C04O05' missing — attached=[('background', 'outdoor_canon:bg_urban_alley')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:26:28.319495+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28 Shot 1: outdoor direct canon refs injected (batch, place=bg_small_fishing_boat)"} {"timestamp": "2026-07-10T01:26:28.320525+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 53: 1 prompts total, generating last 1 T2I + 1 angle"} 10:26:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:28.322818+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:26:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:28.962816+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:28.964357+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-10T01:26:28.968726+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 낡은 빌라 옥탑방 전경"} 10:26:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:29.537050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:29.540090+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-10T01:26:29.544357+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 4 variation=var_1: ref contract violation — skip variation: reference_phrase_kinds declares kind='character' but no character meta attached — attached=[('background', 'outdoor_canon:bg_forest_path')]"} {"timestamp": "2026-07-10T01:26:29.575780+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 29 Shot 3: background_chain ref injected"} {"timestamp": "2026-07-10T01:26:29.576439+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 56: 1 prompts total, generating last 1 T2I + 1 angle"} 10:26:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:29.586793+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:26:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:30.024875+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:30.199172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:30.203399+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-10T01:26:30.204060+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_text[prompt_translation] Tier 1 returned empty, trying sanitized input"} 10:26:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:30.210214+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:26:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:30.781193+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:30.782700+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-10T01:26:30.784803+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_text[prompt_translation] Tier 2 returned empty, trying GPT fallback"} 10:26:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:30.787572+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:30.980002+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:30.981594+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-10T01:26:30.984144+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 22 Shot 1 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_police_station')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:26:31.013622+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 30 Shot 4: outdoor direct canon refs injected (batch, place=bg_open_sea)"} {"timestamp": "2026-07-10T01:26:31.014325+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 59: 1 prompts total, generating last 1 T2I + 1 angle"} 10:26:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:26:31.016918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:26:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:31.127629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:31.951719+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:31.961393+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 10:26:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:32.024746+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:32.025037+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-10T01:26:32.025859+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 11 Shot 4 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_rooftop_unit')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:26:32.052727+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=7 shot=1"} 10:26:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:32.120324+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:32.120618+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-10T01:26:32.121435+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15 Shot 1 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_bus_stop')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:26:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:32.186202+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:32.507830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:32.511120+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-10T01:26:32.513362+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 1 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_foggy_harbor')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:26:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:32.889146+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:33.268002+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:33.269634+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-10T01:26:33.271808+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 6 Shot 1 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_road')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:26:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:33.461178+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:33.469639+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:33.574761+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=23 shot=1"} 10:26:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:34.007814+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:34.013635+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:34.119504+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=20 shot=2"} 10:26:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:34.656521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:35.000948+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:35.002871+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:35.104868+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=16 shot=2"} 10:26:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:35.821112+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:36.064621+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:36.073131+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:36.168550+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=5 shot=4"} 10:26:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:37.205157+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:37.214893+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:37.294246+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=8 shot=1"} 10:26:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:37.733065+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:37.733407+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-10T01:26:37.734564+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 목적지가 표시된 지도 제시"} 10:26:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:38.740383+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:38.982044+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:26:38.985122+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-10T01:26:38.988977+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 안개 속으로의 진입"} 10:26:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:40.234868+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:40.694322+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:40.704730+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:40.804690+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=19 shot=5"} 10:26:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:42.038300+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:42.046862+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:42.122463+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=4 shot=2"} 10:26:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:42.969723+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:42.972185+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:42.974675+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 수리영의 사진 속 인물 지목"} INFO: 127.0.0.1:63295 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:26:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:50.404620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:26:51.342336+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:26:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:52.094024+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:52.101732+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:52.193110+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=28 shot=1"} 10:26:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:26:52.591108+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:26:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:26:52.598349+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:26:52.682958+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=30 shot=4"} 10:27:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:05.159572+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:08.555174+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:08.563542+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:08.661360+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=29 shot=3"} {"timestamp": "2026-07-10T01:27:08.662234+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 0 still a9946397: all variations failed (scene_index=0); REF_CONTRACT_VIOLATION: reference_phrase_kinds declares kind='character' but no character meta attached — attached=[('background', 'outdoor_canon:bg_forest_path')]"} {"timestamp": "2026-07-10T01:27:08.662488+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 2 still 169520da: all variations failed (scene_index=2); REF_CONTRACT_VIOLATION: required character_outlook 'C04O05' missing — attached=[('background', 'outdoor_canon:bg_urban_alley')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:08.860960+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 9 still aaa4f60e: all variations failed (scene_index=9); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_road')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:09.049901+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 18 still e49f5465: all variations failed (scene_index=18); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_rooftop_unit')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:09.050151+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 27 still d828ec03: all variations failed (scene_index=27); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_bus_stop')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:09.343835+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 42 still d92a3bdc: all variations failed (scene_index=42); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_police_station')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:09.440975+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 49 still 27435556: all variations failed (scene_index=49); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_foggy_harbor')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:09.734831+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 5: state_variant=['C04']"} {"timestamp": "2026-07-10T01:27:09.735888+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 2 Shot 3: state_variant=['C08']"} {"timestamp": "2026-07-10T01:27:09.746874+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 5: outdoor direct canon refs injected (batch, place=bg_forest_path)"} {"timestamp": "2026-07-10T01:27:09.796955+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 9 Shot 1: outdoor direct canon refs injected (batch, place=bg_coastal_road)"} {"timestamp": "2026-07-10T01:27:09.807203+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 2 Shot 3: outdoor direct canon refs injected (batch, place=bg_urban_alley)"} {"timestamp": "2026-07-10T01:27:09.827965+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 8 Shot 11: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:27:09.837763+00:00", "level": "INFO", "logger": "app.core.steps.visual_continuity_anchor_step", "message": "registered_pose_guide: S1sh5 no-guide degrade (group=vca-s1-c04-immobilized, reason=no_environment_bg_plate)"} {"timestamp": "2026-07-10T01:27:09.837881+00:00", "level": "WARNING", "logger": "app.core.steps.visual_continuity_anchor_step", "message": "immobilized_prev_frame: S1sh5 연속성 anchor 미부착 — env 멤버 S1sh4 완성 프레임 부재 (stale fallback 안 함, group=vca-s1-c04-immobilized)"} {"timestamp": "2026-07-10T01:27:09.838523+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 7 Shot 3: prev-shot background ref injected (remove: none, loc_id: L07, role: previous_shot_same_room)"} {"timestamp": "2026-07-10T01:27:09.839685+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.850402+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15 Shot 6: outdoor direct canon refs injected (batch, place=bg_coastal_bus_stop)"} {"timestamp": "2026-07-10T01:27:09.860110+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 8 Shot 9: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:27:09.870645+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 7 Shot 3: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} {"timestamp": "2026-07-10T01:27:09.871065+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 3: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.871444+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 5 Shot 7: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:27:09.872041+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 5 Shot 15: background_chain ref injected"} {"timestamp": "2026-07-10T01:27:09.893337+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 14: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.894953+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 11 Shot 5: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:27:09.895373+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 20 Shot 6: background_chain ref injected"} {"timestamp": "2026-07-10T01:27:09.895794+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.896472+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 19 Shot 8: outdoor direct canon refs injected (batch, place=bg_large_market)"} 10:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:09.897907+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 5 Shot 7: prev-shot background ref injected (remove: ['민숙'], loc_id: L05, role: previous_shot_same_room)"} {"timestamp": "2026-07-10T01:27:09.898768+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 16 Shot 3: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:27:09.899012+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 13: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.899364+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28: 1 prompts total, generating last 1 T2I + 1 angle"} 10:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:09.900154+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 혼란 속의 귀가 결심"} {"timestamp": "2026-07-10T01:27:09.903818+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 11: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.903975+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 10 Shot 4: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:27:09.904211+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 21 Shot 10: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:27:09.904310+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 8: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.904512+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 19: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.904597+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:09.906102+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 5 Shot 7: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} {"timestamp": "2026-07-10T01:27:09.907136+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 38: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.907233+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 36: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.907480+00:00", "level": "WARNING", "logger": "app.services.scene_reference_service", "message": "Scene 16 Shot 3: zoom_in_detail downgraded to continuity — subjects not in dep frame: ['C02'] (W3 exact-reuse 금지 diagnostic)"} {"timestamp": "2026-07-10T01:27:09.907744+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:09.909142+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 엇갈린 민숙의 행방에 당황하는 수리영"} {"timestamp": "2026-07-10T01:27:09.913320+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 선명하게 드러난 손목의 원형 표식"} {"timestamp": "2026-07-10T01:27:09.927239+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 맹견의 굴복"} {"timestamp": "2026-07-10T01:27:09.933181+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 16: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.933364+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 40: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.933748+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:09.935082+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 16 Shot 3: prev-shot background ref injected (remove: ['김형사'], loc_id: , role: previous_shot_continuity)"} 10:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:09.935611+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: CCTV 복사 결정"} {"timestamp": "2026-07-10T01:27:09.947416+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 7: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:09.947724+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:09.948778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:09.949064+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 엄마의 마지막 위치 좌표를 확인하고 사색이 된 수리영"} {"timestamp": "2026-07-10T01:27:09.952804+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:09.953366+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 16 Shot 3: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_continuity)"} 10:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:09.954070+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=5_7 reason=dep_continuity_priority removed=['L05B01']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:27:09.954179+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:09.954743+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 심드렁한 수리영의 아침 투정"} {"timestamp": "2026-07-10T01:27:09.965376+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 30: 1 prompts total, generating last 1 T2I + 1 angle"} 10:27:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:09.966428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:63321 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:27:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:16.877156+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:16.879029+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-10T01:27:16.881485+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 5 variation=var_1: ref contract violation — skip variation: reference_phrase_kinds declares kind='character' but no character meta attached — attached=[('background', 'outdoor_canon:bg_forest_path')]"} 10:27:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T01:27:16.893183+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 10:27:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:17.560370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:17.562517+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-10T01:27:17.565765+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 불길하게 반쯤 열린 옥탑방 철문"} 10:27:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:17.909099+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:17.950382+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:17.952432+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-10T01:27:17.953271+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 문틈의 전단지"} 10:27:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:18.056646+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:18.060464+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-10T01:27:18.062019+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 9 Shot 1 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_road')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:18.089115+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 6: outdoor direct canon refs injected (batch, place=bg_foggy_harbor)"} {"timestamp": "2026-07-10T01:27:18.090545+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 50: 1 prompts total, generating last 1 T2I + 1 angle"} 10:27:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:18.092972+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:27:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:18.145947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:18.147689+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-10T01:27:18.148255+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 가로등 아래의 참극"} 10:27:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:18.178492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:18.179772+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-10T01:27:18.180019+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15 Shot 6 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_bus_stop')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:18.195015+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 10: outdoor direct canon refs injected (batch, place=bg_foggy_harbor)"} {"timestamp": "2026-07-10T01:27:18.195922+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 51: 1 prompts total, generating last 1 T2I + 1 angle"} 10:27:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:18.197775+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:27:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:18.245906+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:19.200195+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:19.477656+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:19.485834+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 10:27:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:19.517848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:19.518527+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-10T01:27:19.519195+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 불길한 예감과 위치 추적 지시"} 10:27:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:19.557289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} {"timestamp": "2026-07-10T01:27:19.592121+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=8 shot=9"} {"timestamp": "2026-07-10T01:27:19.603186+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28 Shot 5: outdoor direct canon refs injected (batch, place=bg_small_fishing_boat)"} {"timestamp": "2026-07-10T01:27:19.603831+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 54: 1 prompts total, generating last 1 T2I + 1 angle"} 10:27:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:19.605658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:27:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:19.616289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:19.616565+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-10T01:27:19.617352+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 19 Shot 8 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_large_market')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:19.628701+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 29 Shot 5: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:27:19.629335+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 57: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:19.629601+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 기이한 붉은 원의 발견"} 10:27:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:19.727260+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:19.729125+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:19.804154+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=21 shot=10"} 10:27:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:20.659670+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:20.817390+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:20.819451+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:20.898141+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=8 shot=11"} 10:27:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:21.052639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:21.054835+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:21.128155+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=7 shot=3"} 10:27:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:22.026923+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:22.107715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:22.317846+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:22.318127+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:22.394487+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=5 shot=7"} 10:27:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:23.524648+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:23.531193+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:23.639023+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=20 shot=6"} 10:27:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:24.742547+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:26.099980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:26.107449+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:26.215422+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=5 shot=15"} 10:27:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:26.776308+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:26.779141+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-10T01:27:26.781315+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 6 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_foggy_harbor')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:27:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:28.192893+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:28.208171+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:28.354076+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:28.355812+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-10T01:27:28.358071+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28 Shot 5 variation=var_1: ref contract violation — skip variation: required character_outlook 'C03O04' missing — attached=[('background', 'outdoor_canon:bg_small_fishing_boat')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:27:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:29.130103+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:29.131885+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-10T01:27:29.132330+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 10 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_foggy_harbor')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:27:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:29.635565+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:29.637631+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:29.724485+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=11 shot=5"} 10:27:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:29.743316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:29.743606+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:29.812662+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=10 shot=4"} 10:27:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:30.311688+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:31.681465+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:31.687856+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:31.784158+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=29 shot=5"} 10:27:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:31.811696+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:33.421920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:33.431805+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:33.530877+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=2 shot=3"} {"timestamp": "2026-07-10T01:27:33.531676+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "zoom_continuity(batch): S23sh2 crop/i2i-fill 성공 (group=vca-s23-zoom-3)"} 10:27:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:33.768822+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:35.111329+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:35.117424+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:35.220286+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=16 shot=3"} {"timestamp": "2026-07-10T01:27:35.221413+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 1 still 802b8232: all variations failed (scene_index=1); REF_CONTRACT_VIOLATION: reference_phrase_kinds declares kind='character' but no character meta attached — attached=[('background', 'outdoor_canon:bg_forest_path')]"} {"timestamp": "2026-07-10T01:27:35.790599+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 15 still 258b0c0d: all variations failed (scene_index=15); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_road')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:35.966390+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 28 still 13c22608: all variations failed (scene_index=28); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_bus_stop')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:36.065542+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 36 still 1e398613: all variations failed (scene_index=36); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_large_market')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:36.258873+00:00", "level": "WARNING", "logger": "app.modules.png_metadata", "message": "PNG metadata skip: not a PNG or missing — projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/images/39263663-935e-4316-b481-837ff5731dfd/scene/4d65458d-f49c-4a70-810d-dc1874bd454e.png"} {"timestamp": "2026-07-10T01:27:36.262652+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 50 still 77e45c12: all variations failed (scene_index=50); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_foggy_harbor')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:36.263026+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 51 still 753f5fcc: all variations failed (scene_index=51); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_foggy_harbor')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:36.263363+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 54 still 20ef29f9: all variations failed (scene_index=54); REF_CONTRACT_VIOLATION: required character_outlook 'C03O04' missing — attached=[('background', 'outdoor_canon:bg_small_fishing_boat')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:27:36.358526+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "scene prompt override 적용(batch): S12sh8 (prompt_source=zoom_continuity_anchor, group=vca-s12-zoom-1)"} {"timestamp": "2026-07-10T01:27:36.358842+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12 Shot 8: state_variant=['C06']"} {"timestamp": "2026-07-10T01:27:36.369192+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "scene prompt override 적용(batch): S13sh3 (prompt_source=zoom_continuity_anchor, group=vca-s13-zoom-2)"} {"timestamp": "2026-07-10T01:27:36.369608+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "scene prompt override 적용(batch): S12sh12 (prompt_source=zoom_continuity_anchor, group=vca-s12-zoom-1)"} {"timestamp": "2026-07-10T01:27:36.379490+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "scene prompt override 적용(batch): S13sh5 (prompt_source=zoom_continuity_anchor, group=vca-s13-zoom-2)"} {"timestamp": "2026-07-10T01:27:36.390280+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12 Shot 12: state_variant=['C06']"} {"timestamp": "2026-07-10T01:27:36.390485+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 3 Shot 3: outdoor direct canon refs injected (batch, place=bg_forest_path)"} {"timestamp": "2026-07-10T01:27:36.419760+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12 Shot 8: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:27:36.431206+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 10 Shot 8: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:27:36.462390+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 18 Shot 14: background_chain ref injected"} {"timestamp": "2026-07-10T01:27:36.462498+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 13 Shot 3: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:27:36.463120+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 29 Shot 9: state_variant=['C01']"} {"timestamp": "2026-07-10T01:27:36.463475+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "outdoor_prev_frame(batch): S28sh10 history fallback — primary_location UUID 로 prev 프레임 확보"} {"timestamp": "2026-07-10T01:27:36.463575+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 13 Shot 5: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:27:36.464040+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 4: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.464645+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 21 Shot 5: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:27:36.483290+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 21 Shot 13: background_chain ref injected"} {"timestamp": "2026-07-10T01:27:36.485435+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12 Shot 12: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:27:36.486215+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 24 Shot 3: outdoor direct canon refs injected (batch, place=bg_coastal_road)"} {"timestamp": "2026-07-10T01:27:36.487024+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 17: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.488137+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 23: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.488620+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 29 Shot 9: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:27:36.488823+00:00", "level": "WARNING", "logger": "app.services.scene_reference_service", "message": "Scene 12 Shot 12: zoom_in_detail props not in dep frame: ['P09'] (feedback6-C diagnostic — 줌아웃/줌인 작문 모순 의심, upstream VE/scene_detail 점검 대상)"} {"timestamp": "2026-07-10T01:27:36.489008+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 34: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.489254+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 39: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.489501+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 24: 1 prompts total, generating last 1 T2I + 1 angle"} 10:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:36.490715+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28 Shot 10: outdoor direct canon refs injected (batch, place=bg_small_fishing_boat)"} {"timestamp": "2026-07-10T01:27:36.491235+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 41: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.491644+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 45: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.492343+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 29 Shot 9: prev-shot background ref injected (remove: none, loc_id: L19, role: previous_shot_same_room)"} 10:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:36.492841+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 12 Shot 12: prev-shot background ref injected (remove: none, loc_id: , role: previous_shot_same_frame_zoomed)"} 10:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:36.493790+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 식탁 위 사진 속 엄마 얼굴의 기괴한 환각"} {"timestamp": "2026-07-10T01:27:36.501335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:36.502140+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 좌표를 확인하고 떠나는 수리영"} 10:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:36.514135+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 29 Shot 9: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} 10:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:36.515995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:36.516293+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12 Shot 12: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_frame_zoomed)"} {"timestamp": "2026-07-10T01:27:36.516747+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 55: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.517077+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:36.517647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:36.518529+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:36.518860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:27:36.519553+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 58: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:27:36.520225+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=29_9 reason=dep_continuity_priority removed=['L19B01']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:27:36.520528+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 의식을 잃고 인우에게 쓰러지는 수리영"} 10:27:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:27:36.536320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:27:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:42.370749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:42.373318+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-10T01:27:42.375577+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: Gruesome crime scene photos trigger horr"} 10:27:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:43.932306+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:43.935452+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-10T01:27:43.938079+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 3 Shot 3 variation=var_1: ref contract violation — skip variation: required character_outlook 'C02O03' missing — attached=[('background', 'outdoor_canon:bg_forest_path')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:27:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:44.907061+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:44.910178+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-10T01:27:44.911596+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28 Shot 10 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_small_fishing_boat')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:27:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:46.181327+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:46.184576+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-10T01:27:46.187043+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 창문에 비친 기괴한 습격"} INFO: 127.0.0.1:63366 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:27:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:46.767329+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:46.769344+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-10T01:27:46.771395+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 13 Shot 5 variation=var_1: ref contract violation — skip variation: required character_outlook 'C02O03' missing — attached=[('background', 'outdoor_canon:bg_rooftop_unit')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:27:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:47.052057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:47.067389+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:47.068806+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-10T01:27:47.069676+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 24 Shot 3 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_road')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:27:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:47.224320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:48.610462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:48.618581+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} 10:27:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:48.709484+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:48.709793+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:48.712795+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=18 shot=14"} {"timestamp": "2026-07-10T01:27:48.786935+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=21 shot=13"} 10:27:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:49.310018+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:27:49.312316+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-10T01:27:49.313820+00:00", "level": "ERROR", "logger": "app.services.scene_generation_coordinator", "message": "Scene 13 Shot 3 variation=var_1: ref contract violation — skip variation: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_rooftop_unit')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} 10:27:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:50.972789+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:51.064111+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:27:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:52.437611+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:52.446050+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:52.547945+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=21 shot=5"} 10:27:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:27:53.359176+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:27:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:27:53.366353+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:27:53.465522+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=29 shot=9"} 10:27:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:27:58.515300+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:28:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:28:00.053799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:28:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:28:00.063303+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:28:00.167250+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=10 shot=8"} INFO: 127.0.0.1:63381 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63389 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63399 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T01:29:40.135230+00:00", "level": "INFO", "logger": "app.core.steps.visual_continuity_anchor_step", "message": "registered_pose_guide: S12sh8 등록 가이드 부착 (group=vca-s12-c06-immobilized, status=generated)"} {"timestamp": "2026-07-10T01:29:40.136006+00:00", "level": "INFO", "logger": "app.core.steps.visual_continuity_anchor_step", "message": "registered_pose_guide: S12sh12 등록 가이드 부착 (group=vca-s12-c06-immobilized, status=cache_hit_after_lock)"} {"timestamp": "2026-07-10T01:29:40.136483+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 21: 1 prompts total, generating last 1 T2I + 1 angle"} 10:29:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:29:40.139406+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} {"timestamp": "2026-07-10T01:29:40.142436+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 20: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:29:40.142853+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 어깨와 쇄골이 뜯긴 엄마의 시신"} 10:29:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:29:40.955865+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:29:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:29:40.958405+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-10T01:29:40.961398+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_text[prompt_translation] Tier 1 returned empty, trying sanitized input"} 10:29:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:29:40.966952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:29:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:29:41.742274+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:29:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:29:41.745122+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-10T01:29:41.747191+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_text[prompt_translation] Tier 2 returned empty, trying GPT fallback"} 10:29:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:29:41.750982+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:63418 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:29:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:29:53.664415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:29:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:29:53.667494+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:29:53.669750+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=12_12 reason=dep_continuity_priority removed=['L05B06']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:29:53.670117+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: The Bloody Clue"} {"timestamp": "2026-07-10T01:29:54.274667+00:00", "level": "WARNING", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene T2I blocked (attempt 1): SAFETY"} 10:29:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:29:54.282912+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} INFO: 127.0.0.1:63440 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:30:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:30:17.227239+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:30:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:30:17.229180+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:30:17.233713+00:00", "level": "INFO", "logger": "app.modules.prompt_sanitizer", "message": "Prompt sanitized: attempt=1, strategy=film_previs, semantic_mode=immobilized, changes=그래픽한 부상 묘사(찢어진 살, 심한 어깨/쇄골 부상), 선명한 피/혈흔, 피로 덮인 손·바닥, 노골적인 사망 묘사를 제거했습니다. 인물의 상태는 ‘움직임 없는/생기 없는 정적’으"} {"timestamp": "2026-07-10T01:30:17.233971+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Sanitized scene prompt (strategy: film_previs)"} 10:30:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:30:18.037286+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:30:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:30:19.679392+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:30:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:30:19.686517+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:30:19.782298+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=12 shot=12"} 10:30:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:30:37.329715+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:30:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:30:38.778073+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:30:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:30:38.784532+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:30:38.882024+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=12 shot=8"} {"timestamp": "2026-07-10T01:30:38.883240+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 4 still 8b84ebd2: all variations failed (scene_index=4); REF_CONTRACT_VIOLATION: required character_outlook 'C02O03' missing — attached=[('background', 'outdoor_canon:bg_forest_path')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:30:39.183311+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 23 still a76eb865: all variations failed (scene_index=23); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_rooftop_unit')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:30:39.183701+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 24 still b9bb9ea8: all variations failed (scene_index=24); REF_CONTRACT_VIOLATION: required character_outlook 'C02O03' missing — attached=[('background', 'outdoor_canon:bg_rooftop_unit')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:30:39.470016+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 45 still d006eccc: all variations failed (scene_index=45); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_coastal_road')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:30:39.470408+00:00", "level": "ERROR", "logger": "app.services.scene_image_service", "message": "Scene 55 still 63ea4c7b: all variations failed (scene_index=55); REF_CONTRACT_VIOLATION: required character_outlook 'C01O01' missing — attached=[('background', 'outdoor_canon:bg_small_fishing_boat')] (base 'character' ref 는 충족 X; 같은 캐릭터의 'character_state' 만 immobilized 대체로 충족)"} {"timestamp": "2026-07-10T01:30:39.567780+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 17 Shot 1: dep bytes target realigned to dep_detail (064becb1-eb2c-4c0a-842b-0dab417a0664 → 1ded0651-d528-4635-a30c-9dafa769ca13) — W3 source coherence"} {"timestamp": "2026-07-10T01:30:39.577950+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12 Shot 14: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:30:39.578045+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 12 Shot 14: prev-shot background ref injected (remove: ['민숙'], loc_id: L05, role: previous_shot_same_room)"} {"timestamp": "2026-07-10T01:30:39.578082+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12 Shot 14: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} {"timestamp": "2026-07-10T01:30:39.588960+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 17 Shot 1: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:30:39.589329+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 22: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:30:39.589655+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=12_14 reason=dep_continuity_priority removed=['L05B08']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:30:39.589773+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 벽에 나타난 기이한 붉은 원"} {"timestamp": "2026-07-10T01:30:39.595025+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 31: 1 prompts total, generating last 1 T2I + 1 angle"} 10:30:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:30:39.596245+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:63461 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:30:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:30:46.695314+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:30:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:30:46.698159+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-10T01:30:46.699892+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 적막한 옥탑방의 새벽"} 10:30:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:30:48.711055+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:30:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:30:50.002152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:30:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:30:50.003563+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:30:50.121777+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=12 shot=14"} 10:30:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:30:57.792228+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:30:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:30:59.388547+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:30:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:30:59.394770+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:30:59.478723+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=17 shot=1"} {"timestamp": "2026-07-10T01:30:59.676376+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 14 Shot 4: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:30:59.676456+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 14 Shot 4: prev-shot background ref injected (remove: none, loc_id: L05, role: previous_shot_same_room)"} {"timestamp": "2026-07-10T01:30:59.676488+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 14 Shot 4: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} {"timestamp": "2026-07-10T01:30:59.676982+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:30:59.677297+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=14_4 reason=dep_continuity_priority removed=['L05B07']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:30:59.677378+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 사라진 시신과 흔적"} 10:31:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:31:08.817964+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:31:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:31:10.257746+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:31:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:31:10.264180+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:31:10.364552+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=14 shot=4"} {"timestamp": "2026-07-10T01:31:10.469612+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 14 Shot 5: dep bytes target realigned to dep_detail (8c127b7e-4b96-4087-afa4-d5f77774a54d → f34d6b68-b850-42d2-9bff-7c6c3521a33e) — W3 source coherence"} {"timestamp": "2026-07-10T01:31:10.480369+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 14 Shot 5: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:31:10.480438+00:00", "level": "WARNING", "logger": "app.services.scene_reference_service", "message": "Scene 14 Shot 5: zoom_in_detail downgraded to continuity — subjects not in dep frame: ['C01'] (W3 exact-reuse 금지 diagnostic)"} {"timestamp": "2026-07-10T01:31:10.480469+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 14 Shot 5: prev-shot background ref injected (remove: none, loc_id: L05, role: previous_shot_continuity)"} {"timestamp": "2026-07-10T01:31:10.480501+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 14 Shot 5: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_continuity)"} {"timestamp": "2026-07-10T01:31:10.480945+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_pose_guide: S14sh5 attach SKIPPED — framing_scale='close' (close류 샷에 전신 pose 가이드 부착 금지, W-B 게이트)"} {"timestamp": "2026-07-10T01:31:10.481042+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:31:10.481291+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 깨끗한 방과 사라진 시신에 극도로 당황"} INFO: 127.0.0.1:63502 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:31:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:31:21.375418+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:31:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:31:22.967830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:31:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:31:22.972926+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:31:23.074960+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=14 shot=5"} {"timestamp": "2026-07-10T01:31:23.182011+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 18 Shot 1: dep bytes target realigned to dep_detail (85b554fb-1b6b-444b-80f8-e3206d26f006 → f34d6b68-b850-42d2-9bff-7c6c3521a33e) — W3 source coherence"} {"timestamp": "2026-07-10T01:31:23.193221+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 18 Shot 1: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:31:23.193305+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 18 Shot 1: prev-shot background ref injected (remove: none, loc_id: L05, role: previous_shot_same_room)"} {"timestamp": "2026-07-10T01:31:23.193343+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 18 Shot 1: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} {"timestamp": "2026-07-10T01:31:23.193858+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 32: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:31:23.194193+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=18_1 reason=dep_continuity_priority removed=['L05B05']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:31:23.194302+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 수리영이 침대 발치에서 잠든 채 아침을 맞이함"} 10:31:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:31:32.952530+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:31:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:31:35.449730+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:31:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:31:35.455897+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:31:35.543509+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=18 shot=1"} {"timestamp": "2026-07-10T01:31:35.653469+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 18 Shot 10: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:31:35.653998+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 33: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:31:35.654224+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 환시를 마주하는 거울"} 10:31:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:31:43.339460+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:31:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:31:45.006031+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:31:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:31:45.014349+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:31:45.109075+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=18 shot=10"} {"timestamp": "2026-07-10T01:31:45.207078+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 1: dep bytes target realigned to dep_detail (f57eeea7-5e38-4f20-ac93-8076250f52f8 → 8c127b7e-4b96-4087-afa4-d5f77774a54d) — W3 source coherence"} {"timestamp": "2026-07-10T01:31:45.217502+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 1: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:31:45.217572+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 25 Shot 1: prev-shot background ref injected (remove: ['수리영'], loc_id: L05, role: previous_shot_same_room)"} {"timestamp": "2026-07-10T01:31:45.217609+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 1: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} {"timestamp": "2026-07-10T01:31:45.218062+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 46: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:31:45.218367+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=25_1 reason=dep_continuity_priority removed=['L05B03']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:31:45.218453+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 난장판이 된 집과 발자국 발견"} INFO: 127.0.0.1:63528 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:31:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:31:56.031943+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:31:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:31:58.990310+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:31:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:31:58.998064+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:31:59.095577+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=25 shot=1"} {"timestamp": "2026-07-10T01:31:59.200159+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 6: dep bytes target realigned to dep_detail (0bf8294c-f1fb-4338-b041-741a02cc55ee → 2bb71ada-1231-465b-8284-b5bd457e8d02) — W3 source coherence"} {"timestamp": "2026-07-10T01:31:59.210636+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 6: chain_bg ref SKIPPED — close framing detected (framing_scale='close')"} {"timestamp": "2026-07-10T01:31:59.210711+00:00", "level": "WARNING", "logger": "app.services.scene_reference_service", "message": "Scene 25 Shot 6: zoom_in_detail props not in dep frame: ['P09'] (feedback6-C diagnostic — 줌아웃/줌인 작문 모순 의심, upstream VE/scene_detail 점검 대상)"} {"timestamp": "2026-07-10T01:31:59.210762+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 25 Shot 6: prev-shot background ref injected (remove: none, loc_id: L05, role: previous_shot_same_frame_zoomed)"} {"timestamp": "2026-07-10T01:31:59.210789+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 6: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_frame_zoomed)"} {"timestamp": "2026-07-10T01:31:59.211285+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 47: 1 prompts total, generating last 1 T2I + 1 angle"} 10:31:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:31:59.212552+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:31:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:31:59.810660+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:31:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:31:59.813803+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-10T01:31:59.815411+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_text[prompt_translation] Tier 1 returned empty, trying sanitized input"} 10:31:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:31:59.820241+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:32:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:32:00.376324+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:32:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:32:00.377824+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-10T01:32:00.379158+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_text[prompt_translation] Tier 2 returned empty, trying GPT fallback"} 10:32:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:32:00.383191+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:32:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:32:11.707643+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:32:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:32:11.710322+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:32:11.712277+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 벽에 꽂힌 과거의 진실"} INFO: 127.0.0.1:63544 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:32:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:32:21.103498+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:32:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:32:22.661315+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:32:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:32:22.670856+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:32:22.767517+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=25 shot=6"} {"timestamp": "2026-07-10T01:32:22.868733+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 14: dep bytes target realigned to dep_detail (5c0c4466-5be0-4b90-acc7-e79ee3579e2d → 0bf8294c-f1fb-4338-b041-741a02cc55ee) — W3 source coherence"} {"timestamp": "2026-07-10T01:32:22.879082+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 14: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:32:22.879172+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 25 Shot 14: prev-shot background ref injected (remove: none, loc_id: L05, role: previous_shot_same_room)"} {"timestamp": "2026-07-10T01:32:22.879222+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 25 Shot 14: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} {"timestamp": "2026-07-10T01:32:22.879756+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 48: 1 prompts total, generating last 1 T2I + 1 angle"} 10:32:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T01:32:22.881007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 10:32:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:32:36.794110+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:32:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T01:32:36.797484+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-10T01:32:36.800736+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=25_14 reason=dep_continuity_priority removed=['L05B03']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:32:36.801056+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 이끌리듯 옥탑방을 나서는 수리영"} INFO: 127.0.0.1:63558 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:32:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:32:50.642790+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:32:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:32:52.273136+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:32:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:32:52.280048+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:32:52.389018+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=25 shot=14"} {"timestamp": "2026-07-10T01:32:52.496707+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 27 Shot 1: dep bytes target realigned to dep_detail (0bf8294c-f1fb-4338-b041-741a02cc55ee → 4d10f11f-a71c-426d-8f56-f0fbd48c591e) — W3 source coherence"} {"timestamp": "2026-07-10T01:32:52.508004+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 27 Shot 1: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-07-10T01:32:52.508097+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 27 Shot 1: prev-shot background ref injected (remove: ['수리영', '백팩'], loc_id: L05, role: previous_shot_same_room)"} {"timestamp": "2026-07-10T01:32:52.508138+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 27 Shot 1: prev_shot_ref injected (no chain bg for this shot, role=previous_shot_same_room)"} {"timestamp": "2026-07-10T01:32:52.508673+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 52: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:32:52.509021+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=27_1 reason=dep_continuity_priority removed=['L05B03']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-07-10T01:32:52.509118+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 음성메시지를 확인하며 굳어버린 혜수"} 10:33:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.5; provider = openai {"timestamp": "2026-07-10T01:33:02.800677+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.5; provider = openai"} 10:33:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:33:04.839878+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:33:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.5) 200 OK {"timestamp": "2026-07-10T01:33:04.849035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.5)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:33:04.952137+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=27 shot=1"} {"timestamp": "2026-07-10T01:33:05.068226+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline partial (completed=41/60, failed=19)"} {"timestamp": "2026-07-10T01:33:05.098501+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T01:33:05.135509+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T01:33:05.148837+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T01:33:05.163488+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T01:33:05.166195+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-10T01:33:05.174408+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-10T01:33:05.179728+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_image_pipeline, repaired=0)"} INFO: 127.0.0.1:63575 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63585 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63597 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63608 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63621 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63633 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63642 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63660 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63673 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63682 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63692 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63702 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63712 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63725 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63741 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63750 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63759 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63776 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63786 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63796 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63807 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63816 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63825 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63835 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63844 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63859 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63870 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63886 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63899 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63904 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:63904 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63914 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63924 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63937 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63947 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63958 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63972 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63986 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:63998 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64015 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [65400]