/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 [39516] INFO: Waiting for application startup. {"timestamp": "2026-08-26T02:59:42.939313+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} {"timestamp": "2026-08-26T02:59:43.134700+00:00", "level": "WARNING", "logger": "app.core.step_lock", "message": "[STARTUP-RECLAIM] 00000000-0000-0000-0000-00000000kill/scene_image_pipeline 회수 — startup reclaim: 소유 프로세스가 없다 (owner=mantas-MacBook-Pro.local:26935:3d10b53b, started_at=2026-08-26 02:59:18.418605+00, revoked_run_id=run-살아있던-작업)"} {"timestamp": "2026-08-26T02:59:43.135204+00:00", "level": "WARNING", "logger": "app.main", "message": "기동 시 스텝 락 1개 회수 — 소유 프로세스가 없었다"} {"timestamp": "2026-08-26T02:59:43.137740+00:00", "level": "INFO", "logger": "app.core.step_lock", "message": "스텝 락 하트비트 시작 (간격=30s, boot_id=f8fd0444)"} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-08-26T03:00:11.892084+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 2 key(s) loaded"} INFO: 127.0.0.1:62055 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:64644 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [39516] /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 [82365] INFO: Waiting for application startup. {"timestamp": "2026-08-26T05:37:16.859194+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} {"timestamp": "2026-08-26T05:37:17.041058+00:00", "level": "INFO", "logger": "app.core.step_lock", "message": "스텝 락 하트비트 시작 (간격=30s, boot_id=8bb2dcaa)"} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-08-26T05:37:31.958311+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 2 key(s) loaded"} INFO: 127.0.0.1:64679 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:64681 - "GET /api/v1/projects/x/episodes/y/steps/locks HTTP/1.1" 401 Unauthorized INFO: 127.0.0.1:64689 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:64691 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/locks HTTP/1.1" 200 OK {"timestamp": "2026-08-26T05:38:33.137408+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: run_all:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:all (Run all all steps for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:64693 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/run-all?category=all&mode=resume&image_call_cap=8000&approve_image_generation=true HTTP/1.1" 200 OK {"timestamp": "2026-08-26T05:38:33.148431+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis started (run_id=2caaf9fa-6c53-40c4-8350-4082722b5e30, model=gemini-lite)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a8e7bd-9262-7ab2-bca7-0a426cf0ce88&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-26T05:38:33.159394+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: 기획서 없음 — 빈 결과"} {"timestamp": "2026-08-26T05:38:33.164428+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-26T05:38:33.164512+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step planning_doc_analysis: completed"} {"timestamp": "2026-08-26T05:38:33.166361+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step text_cleanup: skipped"} {"timestamp": "2026-08-26T05:38:33.167577+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_segmentation: skipped"} {"timestamp": "2026-08-26T05:38:33.168565+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_summary: skipped"} {"timestamp": "2026-08-26T05:38:33.170659+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_world_rules: skipped"} {"timestamp": "2026-08-26T05:38:33.171954+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_save: skipped"} {"timestamp": "2026-08-26T05:38:33.173494+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_character_list: skipped"} {"timestamp": "2026-08-26T05:38:33.175180+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_summary: skipped"} {"timestamp": "2026-08-26T05:38:33.176959+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step beat_extract: skipped"} {"timestamp": "2026-08-26T05:38:33.183809+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=shot_extract stem=shot_schema.json loaded_from=10.202604151200 (latest_in_module=17.202607222348). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} {"timestamp": "2026-08-26T05:38:33.183943+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_extract: skipped"} {"timestamp": "2026-08-26T05:38:33.186466+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_validator: skipped"} {"timestamp": "2026-08-26T05:38:33.188054+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_character: skipped"} {"timestamp": "2026-08-26T05:38:33.189090+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_character: skipped"} {"timestamp": "2026-08-26T05:38:33.190604+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_location: skipped"} {"timestamp": "2026-08-26T05:38:33.191565+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_location: skipped"} {"timestamp": "2026-08-26T05:38:33.193148+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_prop: skipped"} {"timestamp": "2026-08-26T05:38:33.194159+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_prop: skipped"} {"timestamp": "2026-08-26T05:38:33.196315+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_merge: skipped"} {"timestamp": "2026-08-26T05:38:33.197422+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_relation: skipped"} {"timestamp": "2026-08-26T05:38:33.198584+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_filter: skipped"} {"timestamp": "2026-08-26T05:38:33.199608+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_detail: skipped"} {"timestamp": "2026-08-26T05:38:33.201002+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_t2i: skipped"} {"timestamp": "2026-08-26T05:38:33.203455+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_selection: skipped"} {"timestamp": "2026-08-26T05:38:33.215097+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.225248+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.226234+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.227147+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.234655+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.239925+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.241479+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.242852+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_director: skipped"} {"timestamp": "2026-08-26T05:38:33.249294+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.256280+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.257332+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.258449+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.264812+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.267964+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.269302+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=scene_director, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.271412+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_director: skipped"} {"timestamp": "2026-08-26T05:38:33.273921+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=scene_camera_flow stem=schema.json loaded_from=2.202607080130 (latest_in_module=5.202608130110). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} {"timestamp": "2026-08-26T05:38:33.274036+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_camera_flow: skipped"} {"timestamp": "2026-08-26T05:38:33.275332+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency: skipped"} {"timestamp": "2026-08-26T05:38:33.282256+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.288437+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.289496+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.290516+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.296541+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.299622+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.300681+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.301893+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase1: skipped"} {"timestamp": "2026-08-26T05:38:33.307625+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.314289+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.315381+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.316441+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.322121+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.325231+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.326430+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=outlook_phase1, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.332993+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.339042+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.340007+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.341043+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.346549+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.349526+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.350460+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.351540+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase2: skipped"} {"timestamp": "2026-08-26T05:38:33.357066+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.363537+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.364655+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.365800+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.372458+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.375661+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.376927+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=outlook_phase2, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.383924+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.390573+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.391752+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.392838+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.399053+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.402172+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.403153+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.404288+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase3: skipped"} {"timestamp": "2026-08-26T05:38:33.410542+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.417160+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.418297+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.419419+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.425466+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.428515+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.429758+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=outlook_phase3, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.433074+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_staging: skipped"} {"timestamp": "2026-08-26T05:38:33.435351+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_classify: skipped"} {"timestamp": "2026-08-26T05:38:33.437437+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_master_plan: skipped"} {"timestamp": "2026-08-26T05:38:33.439325+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_prompt: skipped"} {"timestamp": "2026-08-26T05:38:33.442049+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_essence_extraction: not_applicable"} {"timestamp": "2026-08-26T05:38:33.445462+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_consistency: skipped"} {"timestamp": "2026-08-26T05:38:33.450591+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_render: skipped"} {"timestamp": "2026-08-26T05:38:33.451840+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_light_sidecar: skipped"} {"timestamp": "2026-08-26T05:38:33.453317+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_overlay_payload: skipped"} {"timestamp": "2026-08-26T05:38:33.455347+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step base_location_dossier: skipped"} {"timestamp": "2026-08-26T05:38:33.456818+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_geometry_readback: skipped"} {"timestamp": "2026-08-26T05:38:33.458280+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_semantic_readback: skipped"} {"timestamp": "2026-08-26T05:38:33.461335+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_projection_card: skipped"} {"timestamp": "2026-08-26T05:38:33.462948+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step bg_space_partition: skipped"} {"timestamp": "2026-08-26T05:38:33.465213+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step dwelling_zone_map: skipped"} {"timestamp": "2026-08-26T05:38:33.467618+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_aware_bg_render_plan: skipped"} {"timestamp": "2026-08-26T05:38:33.470933+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_prompt: skipped"} {"timestamp": "2026-08-26T05:38:33.473330+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_reference_policy: skipped"} {"timestamp": "2026-08-26T05:38:33.476744+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_continuity_anchor: skipped"} {"timestamp": "2026-08-26T05:38:33.484459+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.491936+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.493332+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.494743+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.501531+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.504867+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.505932+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.511288+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-26T05:38:33.511448+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 7 shot_staging entries loaded"} {"timestamp": "2026-08-26T05:38:33.514875+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 7 shot_staging entries loaded"} {"timestamp": "2026-08-26T05:38:33.514987+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-26T05:38:33.516484+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 4 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-26T05:38:33.516688+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 4 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-26T05:38:33.516792+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-26T05:38:33.516880+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-26T05:38:33.519972+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 2 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-26T05:38:33.543801+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "verify_completion: s2_sh1 card hash drift resolved by upstream shot_dependency recompute (downstream shot_dependency_t2i false-positive)"} {"timestamp": "2026-08-26T05:38:33.551008+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "verify_completion: s2_sh3 card hash drift resolved by upstream shot_dependency recompute (downstream shot_dependency_t2i false-positive)"} {"timestamp": "2026-08-26T05:38:33.558093+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "verify_completion: s2_sh6 card hash drift resolved by upstream shot_dependency recompute (downstream shot_dependency_t2i false-positive)"} {"timestamp": "2026-08-26T05:38:33.571944+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "verify_completion: s3_sh2 card hash drift resolved by upstream shot_dependency recompute (downstream shot_dependency_t2i false-positive)"} {"timestamp": "2026-08-26T05:38:33.571995+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "verify_completion: 3 render_prompt_card hash-only drift — build 이후 하류 재산출로 인한 가짜 드리프트, 차단하지 않음 (예: [(1, 2, 'hash'), (1, 4, 'hash'), (3, 1, 'hash')])"} {"timestamp": "2026-08-26T05:38:33.572263+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_detail: skipped"} {"timestamp": "2026-08-26T05:38:33.581551+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.588919+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.590250+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.591823+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.598652+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.601860+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.603279+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-26T05:38:33.605216+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency_t2i: skipped"} {"timestamp": "2026-08-26T05:38:33.608067+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step t2i_review: skipped"} {"timestamp": "2026-08-26T05:38:33.610844+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step zoom_continuity_anchor: skipped"} {"timestamp": "2026-08-26T05:38:33.614408+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_site_layout: skipped"} {"timestamp": "2026-08-26T05:38:33.617205+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_place_spec: skipped"} {"timestamp": "2026-08-26T05:38:33.619465+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_lane_plan: skipped"} {"timestamp": "2026-08-26T05:38:33.620786+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_place_canon: skipped"} {"timestamp": "2026-08-26T05:38:33.624292+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_frame_mode: not_applicable"} {"timestamp": "2026-08-26T05:38:33.628130+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_shot_grounding: not_applicable"} {"timestamp": "2026-08-26T05:38:33.630718+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_ref_classify: skipped"} {"timestamp": "2026-08-26T05:38:33.632863+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_share_plan: skipped"} {"timestamp": "2026-08-26T05:38:33.634835+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_continuity: skipped"} {"timestamp": "2026-08-26T05:38:33.636974+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_structure_form_reference: skipped"} {"timestamp": "2026-08-26T05:38:33.641253+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_structure_seed: skipped"} {"timestamp": "2026-08-26T05:38:33.642709+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step world_guide: skipped"} {"timestamp": "2026-08-26T05:38:33.645809+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step space_set_bg: not_applicable"} {"timestamp": "2026-08-26T05:38:33.650574+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step ref_image_gen: skipped"} {"timestamp": "2026-08-26T05:38:33.659232+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step composite_image_gen: skipped"} {"timestamp": "2026-08-26T05:38:33.666570+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step character_state_variant: skipped"} {"timestamp": "2026-08-26T05:38:33.669982+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_render: skipped"} {"timestamp": "2026-08-26T05:38:33.675828+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_conti_light: skipped"} {"timestamp": "2026-08-26T05:38:33.689162+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_image_pipeline: skipped"} {"timestamp": "2026-08-26T05:38:33.696674+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T05:38:33.704024+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T05:38:33.705316+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T05:38:33.706503+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T05:38:33.713327+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T05:38:33.716528+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T05:38:33.717549+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} INFO: 127.0.0.1:51684 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:52004 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:52010 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:52091 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [82365] /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 [36468] INFO: Waiting for application startup. {"timestamp": "2026-08-26T09:07:53.773377+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} {"timestamp": "2026-08-26T09:07:53.966431+00:00", "level": "INFO", "logger": "app.core.step_lock", "message": "스텝 락 하트비트 시작 (간격=30s, boot_id=af8db160)"} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-08-26T09:07:54.463874+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 2 key(s) loaded"} INFO: 127.0.0.1:52151 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:52154 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:52175 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:52175 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:10:31.488220+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:scene_detail (Step scene_detail for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52175 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/scene_detail?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:10:31.507895+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:10:31.519447+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:10:31.520641+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:10:31.522026+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:10:31.530560+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:10:31.535393+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:10:31.537417+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T09:10:31.546607+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Preserved stale checkpoint for shot_dependency_t2i (consumed by scene_detail) — 파일 보존, DB stale. drift 방지를 위해 scene_detail force 완료 후 shot_dependency_t2i도 재실행 권장"} {"timestamp": "2026-08-26T09:10:31.551276+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Invalidated 8 downstream steps from scene_detail (delete_cp=True): ['outdoor_site_layout', 'scene_image_pipeline', 'scene_verify', 'shot_dependency_t2i', 'space_set_bg', 't2i_review', 'world_guide', 'zoom_continuity_anchor']"} {"timestamp": "2026-08-26T09:10:31.553131+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail started (run_id=b728b94a-665b-4b08-a126-9982725ef9bd, model=gemini-pro)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a8ead8-78dc-7747-a17c-562a7432ee3f&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-26T09:10:31.563369+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-26T09:10:31.564325+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 7 shot_staging entries loaded"} {"timestamp": "2026-08-26T09:10:31.564636+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-26T09:10:31.567737+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 4 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-26T09:10:31.567970+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 4 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-26T09:10:31.568110+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-26T09:10:31.568214+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-26T09:10:31.572526+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 2 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-26T09:10:31.575799+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail: 3 segments → 7 tasks (shot-based, 0 edited skipped)"} {"timestamp": "2026-08-26T09:10:31.597664+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik usage 에 캐시 항목 기록 켬 (create_usage_object 래핑)"} {"timestamp": "2026-08-26T09:10:31.598367+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab, url: http://192.168.133.87:5173/api, cache_wiring=ok)"} 18:10:31 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-26T09:10:31.603598+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-26T09:10:31.603892+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 16 deployments (2 Gemini keys, OpenAI=True slot=primary/2)"} 18:10:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:10:31.639204+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:10:31.640924+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:10:31.644980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:10:31.646593+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:10:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:10:31.648224+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:52194 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:52194 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52194 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:11:09 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:09.541391+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:09 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a8eada-d8c3-74c1-8000-1380ba36f119&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-26T09:11:09.549613+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:11:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:11:09.578745+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:11:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:14.255177+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:11:14.259546+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:11:14.282432+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-08-26T09:11:14.282547+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}"} 18:11:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:11:14.292961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:11:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:14.377243+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:11:14.379974+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:11:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:11:14.396403+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:11:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:20.142675+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:11:20.143926+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:11:20.149847+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-26T09:11:20.149898+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:11:21 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:21.228245+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:21 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:11:21.231497+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:11:24 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:24.442850+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:24 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:11:24.443202+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:11:24.451737+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S1 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:11:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:11:24.458761+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:52207 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:11:33 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:33.230117+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:33 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:11:33.231160+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:11:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:47.296665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:11:47.300108+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:11:47.317869+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-26T09:11:47.318041+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 18:11:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:11:47.331814+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:11:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:51.706573+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:11:51.709414+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:11:51.722823+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 3: 제거할 ID: L01 — retry"} 18:11:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:11:51.730525+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} {"timestamp": "2026-08-26T09:11:52.696187+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-08-26T09:11:52.696648+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-08-26T09:11:52.696804+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} 18:11:56 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:11:56.415747+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:11:56 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:11:56.419902+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:52225 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:12:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:12:20.021564+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:12:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:12:20.023275+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:12:20.050906+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-26T09:12:20.063392+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-26T09:12:20.063790+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 7 shot_staging entries loaded"} {"timestamp": "2026-08-26T09:12:20.067302+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-26T09:12:20.068714+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 7 shot_staging entries loaded"} {"timestamp": "2026-08-26T09:12:20.068973+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-26T09:12:20.070653+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 4 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-26T09:12:20.071074+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 4 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-26T09:12:20.071296+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-26T09:12:20.071492+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-26T09:12:20.083332+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 2 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-26T09:12:20.135897+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail completed (completed=7/7, failed=0)"} {"timestamp": "2026-08-26T09:12:20.155593+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:12:20.172645+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:12:20.174213+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:12:20.175755+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:12:20.189568+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:12:20.196408+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 2 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:12:20.200562+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=scene_detail, repaired=0)"} INFO: 127.0.0.1:52233 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52233 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52233 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/scene_image_pipeline?mode=force HTTP/1.1" 400 Bad Request INFO: 127.0.0.1:52247 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:52247 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52278 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:52278 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:14:44.946221+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:shot_dependency_t2i (Step shot_dependency_t2i for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52278 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/shot_dependency_t2i?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:14:44.951474+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=shot_dependency_t2i status=running → force-like"} {"timestamp": "2026-08-26T09:14:44.952383+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i started (run_id=02c1d09a-1ac3-4596-9475-4ca267437c22, model=gpt-mini)"} 18:14:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:14:44.956502+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:52284 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:14:54 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:14:54.135059+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:14:54 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:14:54.139267+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:14:54.152179+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L01 (4 shots) — LLM OK"} 18:14:54 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:14:54.160777+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:15:06 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:15:06.233700+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:15:06 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:15:06.235525+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:15:06.253596+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L02 (3 shots) — LLM OK"} {"timestamp": "2026-08-26T09:15:06.254563+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: 4/7 linked (LLM-based)"} {"timestamp": "2026-08-26T09:15:06.270401+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i completed (completed=7/7, failed=0)"} {"timestamp": "2026-08-26T09:15:06.301137+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:15:06.321757+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:15:06.323871+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:15:06.325965+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:15:06.344101+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:15:06.353201+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:15:06.358272+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=shot_dependency_t2i, repaired=0)"} INFO: 127.0.0.1:52292 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52292 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:15:20.080528+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:t2i_review (Step t2i_review for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52292 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/t2i_review?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:15:20.097933+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=t2i_review status=running → force-like"} {"timestamp": "2026-08-26T09:15:20.101642+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review started (run_id=764407aa-5272-4d44-b76c-58b30366c4fa, model=gpt)"} 18:15:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T09:15:20.118999+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 18:15:22 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-26T09:15:22.082378+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} INFO: 127.0.0.1:52296 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:15:27 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T09:15:27.789595+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 18:15:28 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-26T09:15:28.725200+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 18:15:33 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T09:15:33.784357+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 18:15:34 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-26T09:15:34.019087+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 18:15:39 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T09:15:39.287007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 18:15:39 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-26T09:15:39.509649+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 18:15:45 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-26T09:15:45.193384+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-26T09:15:45.194248+00:00", "level": "WARNING", "logger": "app.core.openai_keys", "message": "OpenAI 키 전환: primary → secondary (사유=429 · 지점=router.completion[gpt]). 이 프로세스는 이후 secondary 슬롯을 쓴다."} {"timestamp": "2026-08-26T09:15:45.194454+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router 무효화 — OpenAI 키 슬롯 전환 반영"} 18:15:45 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-26T09:15:45.208648+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-26T09:15:45.209120+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 16 deployments (2 Gemini keys, OpenAI=True slot=secondary/2)"} 18:15:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T09:15:45.211160+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:52309 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:16:02 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:16:02.641726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:16:02 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T09:16:02.645578+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:16:02.653295+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity C03 [awkward_translation]: 영어 표현 'contemporary modern era'와 '70-year-old Korean elderly person'이 중복적이고 부자연스"} {"timestamp": "2026-08-26T09:16:02.653368+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L01 [awkward_translation]: 영어 표현 'contemporary modern era'와 'cramped and narrow'가 의미상 중복되어 어색합니다. 원문의 현대적이고"} {"timestamp": "2026-08-26T09:16:02.653420+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L02 [awkward_translation]: 배경을 나타내는 영어 표현 'contemporary modern era'가 중복적이고 부자연스럽습니다. 원문의 현대 저녁·밤 골목 배경이 자연스"} {"timestamp": "2026-08-26T09:16:02.653460+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P01 [awkward_translation]: 영어 표현 'contemporary modern era'가 의미상 중복되어 어색합니다. 현대적 배경 정보가 자연스러운 영어로 표현되도록 재생성해"} {"timestamp": "2026-08-26T09:16:02.653496+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P02 [awkward_translation]: 영어 도입부 'Set in Contemporary Modern'은 문법적으로 불완전하고 부자연스러운 번역 표현입니다. 원문의 현대식 손전등이라는"} 18:16:02 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T09:16:02.663441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 18:16:12 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:16:12.660709+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:16:12 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T09:16:12.663420+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:16:12.672305+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review scene batch 1/1: 7 items, 0 issues"} {"timestamp": "2026-08-26T09:16:12.672470+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review v1: entity 5 diagnostics, scene 0 diagnostics (mutation=0)"} {"timestamp": "2026-08-26T09:16:12.685485+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-26T09:16:12.712073+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:16:12.735188+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:16:12.738449+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:16:12.741930+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:16:12.763982+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:16:12.775007+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:16:12.779600+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=t2i_review, repaired=0)"} INFO: 127.0.0.1:52318 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52318 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:25.244100+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:zoom_continuity_anchor (Step zoom_continuity_anchor for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52318 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/zoom_continuity_anchor?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:25.258030+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=zoom_continuity_anchor status=running → force-like"} {"timestamp": "2026-08-26T09:16:25.261500+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor started (run_id=e22fb79e-b67c-4fc9-9f20-4a5e697fac04, model=gpt)"} {"timestamp": "2026-08-26T09:16:25.281034+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-26T09:16:25.298870+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:16:25.314083+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:16:25.316284+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:16:25.318404+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:16:25.333027+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:16:25.340567+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:16:25.343194+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=zoom_continuity_anchor, repaired=0)"} INFO: 127.0.0.1:52322 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52322 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:30.343223+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:outdoor_site_layout (Step outdoor_site_layout for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52322 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/outdoor_site_layout?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:30.355200+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=outdoor_site_layout status=running → force-like"} {"timestamp": "2026-08-26T09:16:30.357086+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout started (run_id=df2770f8-d073-4927-860c-12f04abc564a, model=gpt)"} {"timestamp": "2026-08-26T09:16:30.369394+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-26T09:16:30.384454+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:16:30.400819+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:16:30.402870+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:16:30.404663+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:16:30.417616+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:16:30.424191+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:16:30.427411+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=outdoor_site_layout, repaired=0)"} INFO: 127.0.0.1:52324 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52324 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:35.415085+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:world_guide (Step world_guide for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52324 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/world_guide?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:35.424825+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=world_guide status=running → force-like"} {"timestamp": "2026-08-26T09:16:35.426678+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide started (run_id=21f8a4aa-fb14-44b2-b267-129f44507fcb, model=gpt)"} {"timestamp": "2026-08-26T09:16:35.464617+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-26T09:16:35.485425+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:16:35.501926+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:16:35.504726+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:16:35.507061+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:16:35.523538+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:16:35.533418+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:16:35.536305+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=world_guide, repaired=0)"} INFO: 127.0.0.1:52330 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52330 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:40.519290+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:space_set_bg (Step space_set_bg for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52330 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/space_set_bg?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:40.564446+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:16:40.594002+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:16:40.596941+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:16:40.599688+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:16:40.621640+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:16:40.631469+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:16:40.634982+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=space_set_bg, repaired=0)"} INFO: 127.0.0.1:52339 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52339 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:45.614168+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:scene_image_pipeline (Step scene_image_pipeline for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52339 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/scene_image_pipeline?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:16:45.624044+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=scene_image_pipeline status=running → force-like"} {"timestamp": "2026-08-26T09:16:45.625073+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline started (run_id=07b4b0c0-41db-4bc2-bfad-2d226c98cb73, model=mixed)"} {"timestamp": "2026-08-26T09:16:45.635826+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:16:45.644066+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:16:45.645022+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:16:45.645927+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:16:45.655390+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:16:45.659736+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:16:45.661295+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T09:16:45.685168+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:16:45.693056+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:16:45.694234+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:16:45.695364+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:16:45.702466+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:16:45.706102+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:16:45.707222+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T09:16:45.729029+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=8750a231: expected=8 registered=8 disk=8 missing=0"} {"timestamp": "2026-08-26T09:16:45.730251+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: scene — 7 completed, 0 failed"} {"timestamp": "2026-08-26T09:16:45.755048+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 7 existing reference images for 10 entities"} {"timestamp": "2026-08-26T09:16:45.755109+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-08-26T09:16:45.768148+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-26T09:16:45.770151+00:00", "level": "WARNING", "logger": "app.services.still_recipe_service", "message": "still_recipe: 운영자 선언 무콘티 예외 2샷 — BGFIRST 대상 제외 후 기존 경로 생성: ['S11sh1', 'S75sh7']"} {"timestamp": "2026-08-26T09:16:45.785802+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh2: confined fp 판별 제외 — 자전거 정비소 내부는 조종실이나 차량 내부처럼 인물이나 제어 장치의 배치가 엄격하게 중요한 공간이 아니며, 단순한 실내 공간이므로 평면도 보조가"} {"timestamp": "2026-08-26T09:16:45.828028+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh4: confined fp 판별 제외 — 이 공간은 차량 조종석이나 통제실과 같이 복잡한 기기 및 좌석 배치가 중요한 공간이 아니며, 단순한 자전거 수리 작업실 내부에서 두 인물이 마주"} {"timestamp": "2026-08-26T09:16:45.905821+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh3: 노인(C03) pose-locked by prev S2sh1 — 캐릭터 참조 제외"} {"timestamp": "2026-08-26T09:16:45.927331+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh6: 노인(C03) pose-locked by prev S2sh3 — 캐릭터 참조 제외"} {"timestamp": "2026-08-26T09:16:45.945937+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh1: confined fp 판별 제외 — 이 장소는 자전거 수리점 내부로, 차량 운전석이나 조종실과 같이 복잡한 제어 장치가 있는 공간이 아니며, 인물들의 위치나 방향성이 이야기 전개에"} {"timestamp": "2026-08-26T09:16:45.985335+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh2: confined fp 판별 제외 — 이 숏은 조종실이나 차량 내부처럼 좌석 배치나 통제 장치 위치가 중요한 공간이 아니며, 단순히 자전거 수리점 문가에서 밖을 바라보는 장면이므로 "} {"timestamp": "2026-08-26T09:16:46.019990+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe JIT 검증 요약: 그대로 7 · 재생성 0 (그중 산출동일 0) · record없음(검증불가 skip) 0 · 실패 0"} {"timestamp": "2026-08-26T09:16:46.026716+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "still_recipe v1: 0/7 샷 생성 완료 (episode=8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} {"timestamp": "2026-08-26T09:16:46.041387+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline completed (completed=7/7, failed=0)"} {"timestamp": "2026-08-26T09:16:46.054455+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:16:46.065857+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:16:46.067705+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:16:46.069484+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:16:46.077343+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:16:46.080703+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:16:46.082044+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=scene_image_pipeline, repaired=0)"} INFO: 127.0.0.1:52346 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:20:28.775507+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-08-26T09:20:28.775630+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} INFO: 127.0.0.1:52443 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:21:03.715539+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:scene_image_pipeline (Step scene_image_pipeline for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:52443 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/scene_image_pipeline?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:21:03.722818+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline started (run_id=1791310c-2f9c-4c65-9ba8-4835dc24ae1b, model=mixed)"} {"timestamp": "2026-08-26T09:21:03.733092+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:21:03.740416+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:21:03.741441+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:21:03.742441+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:21:03.749595+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:21:03.753136+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:21:03.754376+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T09:21:03.761255+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "scene_image_pipeline force: recipe 산출 아카이브 → /Users/manta/Documents/Projects/TheRoad-I1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/images/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/scene/recipe_archived_20260826_182103"} {"timestamp": "2026-08-26T09:21:03.770686+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T09:21:03.778840+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T09:21:03.780082+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T09:21:03.781198+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T09:21:03.787625+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T09:21:03.790738+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T09:21:03.791868+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T09:21:03.804649+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=8750a231: expected=8 registered=8 disk=8 missing=0"} {"timestamp": "2026-08-26T09:21:03.823008+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 7 existing reference images for 10 entities"} {"timestamp": "2026-08-26T09:21:03.823073+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-08-26T09:21:03.830668+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-26T09:21:03.830894+00:00", "level": "WARNING", "logger": "app.services.still_recipe_service", "message": "still_recipe: 운영자 선언 무콘티 예외 2샷 — BGFIRST 대상 제외 후 기존 경로 생성: ['S11sh1', 'S75sh7']"} 18:21:03 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:21:03.838508+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:21:11 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:21:11.076001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:21:11 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:21:11.079207+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:21:11.083901+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh2: confined fp 판별 제외 — 이 샷은 자전거 정비소 내부를 배경으로 하고 있으며, 조종석이나 승무원 탑승 공간과 같이 좌석 배치나 조작 장치의 위치가 중요한 통제 중심의 공"} 18:21:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:21:11.097705+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:21:15 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:21:15.062759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:21:15 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:21:15.068512+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:21:15 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:21:15.098313+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:21:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:21:20.441464+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:21:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:21:20.445635+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:52456 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:52456 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:21:30.955037+00:00", "level": "INFO", "logger": "app.modules.pipeline.search_grounded_ref", "message": "search_grounded_ref: 검색 1회 / 회수 사진 6장 · 나간 질의 [[\"한국 골목길 오래된 자전거포 내부 자전거 수리점\", \"동네 자전거포 내부 자전거 수리 공구\"]]"} 18:21:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:21:35.651734+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:21:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:21:53.776001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:21:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:21:53.781286+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:52495 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52519 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:23:57.165991+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (715427 → 1484982 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} INFO: 127.0.0.1:52545 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:24:49.680534+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (753170 → 1561658 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} 18:24:49 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:24:49.696052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:52575 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:25:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:25:36.028700+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:25:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:25:36.032472+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 18:25:52 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:25:52.999234+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:52600 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:27:02 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:27:02.899871+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:27:02 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:27:02.905883+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:52634 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52663 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:28:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:28:46.612629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:29:21 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:29:21.570339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:29:21 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:29:21.575173+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:52687 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52710 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:31:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:31:17.419429+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:52733 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:31:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:31:59.191594+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:31:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:31:59.195657+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:32:11.333513+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (332826 → 1266311 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 18:32:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:32:11.348854+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:52763 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:33:03 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:33:03.535269+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:33:03 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:33:03.539860+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:52794 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52819 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:35:00 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:35:00.683474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:52841 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:35:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:35:36.880353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:35:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:35:36.885896+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:52867 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52899 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:38:11.272999+00:00", "level": "WARNING", "logger": "app.modules.pipeline.multiroll_select", "message": "multiroll_select[still_S1sh2]: fix-rejudge — 수정본 개악 판정, 선정 원본(B) 유지"} INFO: 127.0.0.1:52927 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:39:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T09:39:18.287018+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 18:39:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:39:20.826236+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:39:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T09:39:20.829274+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 18:39:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T09:39:20.880226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 18:39:23 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:39:23.373707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:39:23 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T09:39:23.376691+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:39:23.454137+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh2: 완료 (selected=B, fix=True)"} 18:39:23 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:39:23.459845+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:52961 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:52984 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:40:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:40:51.261133+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:40:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:40:51.265134+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:40:51.274689+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh4: confined fp 판별 제외 — 이 샷은 자전거 수리점 내부에서 두 인물이 서로 마주 보고 있는 장면입니다. 조종실이나 차량 내부처럼 복잡한 기기 조작부나 정확한 좌석 배치가 "} 18:40:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:40:51.295218+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:40:56 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:40:56.156347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:40:56 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:40:56.160903+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 18:40:56 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T09:40:56.192762+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 18:41:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:41:01.393065+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:41:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T09:41:01.397193+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:41:09.508608+00:00", "level": "INFO", "logger": "app.modules.pipeline.search_grounded_ref", "message": "search_grounded_ref: 검색 1회 / 회수 사진 6장 · 나간 질의 [[\"자전거 수리점 내부 동네 자전거포 작업대\", \"한국 동네 자전거 수리점 내부 자전거 점포\"]]"} 18:41:13 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:41:13.760219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:53011 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:41:37 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:41:37.536765+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:41:37 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:41:37.540434+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:53044 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53075 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:43:40.032061+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (767379 → 1590850 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} {"timestamp": "2026-08-26T09:43:42.039527+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (774481 → 1613976 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} 18:43:42 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:43:42.056110+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:44:18 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:44:18.653774+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:44:18 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:44:18.657800+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:53103 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53129 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:46:02 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:46:02.926492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:53156 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:46:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:46:32.332372+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:46:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:46:32.338415+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:53193 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53218 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:48:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:48:28.145735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:49:05 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:49:05.750588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:49:05 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:49:05.754309+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:53247 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53268 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53292 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53324 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:52:30 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:52:30.106657+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:53349 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:54:06 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:54:06.391360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:54:06 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:54:06.395174+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T09:54:18.515262+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (378233 → 1408128 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 18:54:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:54:18.531929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:53376 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:54:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:54:46.847636+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:54:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:54:46.854681+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:53406 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53427 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 18:56:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T09:56:31.671479+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 18:57:03 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T09:57:03.723947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 18:57:03 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T09:57:03.728397+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:53462 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53491 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T09:59:02.359800+00:00", "level": "WARNING", "logger": "app.modules.pipeline.multiroll_select", "message": "multiroll_select[still_S1sh4]: fix-rejudge — 수정본 개악 판정, 선정 원본(B) 유지"} INFO: 127.0.0.1:53516 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:00:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T10:00:18.590924+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 19:00:24 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:00:24.086281+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:00:24 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T10:00:24.089362+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 19:00:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T10:00:24.148673+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:53549 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:00:28 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:00:28.236786+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:00:28 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T10:00:28.239582+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:00:28.312396+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh4: 완료 (selected=B, fix=True)"} 19:00:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T10:00:28.319434+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 19:00:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:00:32.488948+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:00:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T10:00:32.492094+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 19:00:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T10:00:32.523629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 19:00:37 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:00:37.508929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:00:37 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T10:00:37.513579+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:00:48.301582+00:00", "level": "INFO", "logger": "app.modules.pipeline.search_grounded_ref", "message": "search_grounded_ref: 검색 1회 / 회수 사진 6장 · 나간 질의 [[\"한국 주택가 골목길 야경 골목길 사거리 보안등 골목길 밤 동네 골목길\", \"한국의 현대 주택가 골목길 사거리\"]]"} 19:00:49 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:00:49.359545+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:01:22 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:01:22.016845+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:01:22 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:01:22.021939+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:53583 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53611 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:03:21.004764+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (750649 → 1628438 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} INFO: 127.0.0.1:53640 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:03:33.668560+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (749187 → 1627649 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} 19:03:33 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:03:33.685462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:04:09 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:04:09.681874+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:04:09 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:04:09.684730+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:53669 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53690 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:05:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:05:45.768400+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:06:10 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:06:10.537548+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:06:10 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:06:10.541157+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:53714 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53746 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:07:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:07:46.345554+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:08:16 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:08:16.902592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:08:16 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:08:16.908335+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:53773 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:08:29.876162+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (351314 → 1341757 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 19:08:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:08:29.892670+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:08:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:08:51.882584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:08:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:08:51.888303+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:53799 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53824 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:10:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:10:47.815181+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:11:13 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:11:13.399252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:11:13 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:11:13.401155+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:53848 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53879 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:13:18.532668+00:00", "level": "WARNING", "logger": "app.modules.pipeline.multiroll_select", "message": "multiroll_select[still_S2sh1]: fix-rejudge — 수정본 개악 판정, 선정 원본(B) 유지"} INFO: 127.0.0.1:53911 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:53939 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:14:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T10:14:44.351841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 19:14:48 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:14:48.556767+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:14:48 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T10:14:48.561371+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 19:14:48 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T10:14:48.614606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 19:14:52 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:14:52.039876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:14:52 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T10:14:52.044703+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:14:52.120651+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh1: 완료 (selected=B, fix=True)"} {"timestamp": "2026-08-26T10:14:52.126127+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh3: 노인(C03) pose-locked by prev S2sh1 — 캐릭터 참조 제외"} 19:14:52 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T10:14:52.130918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 19:14:56 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:14:56.588939+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:14:56 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T10:14:56.594295+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:15:15.269714+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (720705 → 1561776 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} INFO: 127.0.0.1:53970 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:15:32.850690+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (723609 → 1574441 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} 19:15:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:15:32.864934+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:16:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:16:25.751146+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:16:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:16:25.756512+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:54000 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54026 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54053 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:18:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:18:38.181873+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:19:05 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:19:05.968269+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:19:05 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:19:05.973968+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:54082 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54103 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54131 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54163 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:23:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:23:26.663917+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54187 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:23:54 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:23:54.895524+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:23:54 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:23:54.900766+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:24:06.246400+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (301177 → 1193950 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 19:24:06 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:24:06.261701+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54213 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:24:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:24:31.176125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:24:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:24:31.181076+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:54246 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54266 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:26:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:26:29.642992+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:27:03 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:27:03.918916+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:27:03 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:27:03.923096+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:54302 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54334 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54361 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:29:37 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T10:29:37.124191+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 19:29:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:29:43.041633+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:29:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T10:29:43.043902+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 19:29:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T10:29:43.101646+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 19:29:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:29:47.197416+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:29:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T10:29:47.201121+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:29:47.278255+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh3: 완료 (selected=B, fix=True)"} {"timestamp": "2026-08-26T10:29:47.281922+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh6: 노인(C03) pose-locked by prev S2sh3 — 캐릭터 참조 제외"} 19:29:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T10:29:47.285922+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 19:29:52 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:29:52.323609+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:29:52 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T10:29:52.326607+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:30:05.460333+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (704366 → 1524554 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} {"timestamp": "2026-08-26T10:30:18.288185+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (682626 → 1470820 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} 19:30:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:30:18.301674+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54391 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:30:58 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:30:58.477702+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:30:58 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:30:58.483323+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:54419 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54446 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:32:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:32:32.525784+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:33:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:33:04.841516+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:33:04 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:33:04.845071+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:54475 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54500 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:34:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:34:44.915678+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54522 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:35:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:35:47.472353+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:35:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:35:47.475692+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:36:01.351382+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (311556 → 1213101 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 19:36:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:36:01.364612+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54549 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:36:44 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:36:44.274855+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:36:44 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:36:44.279215+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:54584 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54608 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:39:00 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:39:00.960828+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54632 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:39:40 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:39:40.831467+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:39:40 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:39:40.835198+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:54658 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:41:26.473960+00:00", "level": "WARNING", "logger": "app.modules.pipeline.multiroll_select", "message": "multiroll_select[still_S2sh6]: fix-rejudge — 수정본 개악 판정, 선정 원본(A) 유지"} INFO: 127.0.0.1:54679 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54716 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:43:07.066840+00:00", "level": "WARNING", "logger": "app.modules.llm.reve_image_client", "message": "reve 변환 1/3 실패 — 15.0초 뒤 다시 시도한다 (request_id=01a03da9-217a-7f32-807b-71d325052b50 · ReveTerminalError: reve 504 downstream_service_unavailable: Downstream service unavailable)"} {"timestamp": "2026-08-26T10:43:24.017077+00:00", "level": "WARNING", "logger": "app.modules.llm.reve_image_client", "message": "reve 변환 2/3 실패 — 15.0초 뒤 다시 시도한다 (request_id=01a03da9-217a-7f32-807b-71d325052b50 · ReveTerminalError: reve 504 downstream_service_unavailable: Downstream service unavailable)"} INFO: 127.0.0.1:54754 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:43:41.011057+00:00", "level": "WARNING", "logger": "app.modules.pipeline.cine_transform", "message": "cine_transform S2sh6: 변환 실패 — 원본 sel fallback (ReveTerminalError: reve 504 downstream_service_unavailable: Downstream service unavailable)"} {"timestamp": "2026-08-26T10:43:41.055370+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh6: 완료 (selected=A, fix=True)"} 19:43:41 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:43:41.061923+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:43:49 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:43:49.131758+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:43:49 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:43:49.135282+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:43:49.146763+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh1: confined fp 판별 제외 — 해당 샷은 자전거 수리점이라는 일반적인 실내 공간을 배경으로 하고 있으며, 차량 조종석이나 통제실과 같이 복잡하고 엄격한 좌석 배치나 조작 장치"} 19:43:49 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T10:43:49.162029+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 19:43:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:43:53.916048+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:43:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T10:43:53.920281+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 19:43:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T10:43:53.961498+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 19:43:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:43:59.023481+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:43:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T10:43:59.028150+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:44:08.908450+00:00", "level": "INFO", "logger": "app.modules.pipeline.search_grounded_ref", "message": "search_grounded_ref: 검색 1회 / 회수 사진 6장 · 나간 질의 [[\"한국 동네 자전거 수리점 내부 자전거 정비소 내부\", \"동네 자전거포 내부 자전거 정비 작업장\"]]"} {"timestamp": "2026-08-26T10:44:09.152662+00:00", "level": "INFO", "logger": "app.modules.pipeline.search_grounded_ref", "message": "search_grounded_ref: 다운로드 실패 https://mimg.segye.com/content/image/2026/03/23/ori/20260323518735.jpg — "} 19:44:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:44:09.608460+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54784 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:44:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:44:34.186459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:44:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:44:34.188710+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:54812 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54839 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T10:46:34.954841+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (723447 → 1486657 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} {"timestamp": "2026-08-26T10:46:36.861951+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (716107 → 1485322 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} 19:46:36 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:46:36.878775+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:47:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:47:04.576717+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:47:04 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:47:04.580939+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:54871 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54898 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:49:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:49:21.425635+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:54924 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:49:55 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:49:55.607431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:49:55 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:49:55.611387+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:54948 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:54971 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55003 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:53:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:53:14.427905+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55028 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:53:48 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:53:48.515509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:53:48 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:53:48.520048+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:55057 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55083 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:55:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:55:55.759222+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55104 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:56:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:56:35.685950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:56:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:56:35.690112+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:55144 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:58:19 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T10:58:19.192365+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 19:58:23 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:58:23.413295+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:58:23 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T10:58:23.415714+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 19:58:23 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T10:58:23.466896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 19:58:28 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:58:28.360571+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:58:28 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T10:58:28.363923+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:58:28.437124+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh1: 완료 (selected=A, fix=False)"} 19:58:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:58:28.440366+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55183 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 19:58:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:58:34.133178+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:58:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:58:34.137642+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:58:34.156054+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh2: confined fp 판별 제외 — 이 샷은 자전거 수리점 문가에서 밖을 내다보는 장면으로, 복잡한 조종 장치가 있는 밀폐된 공간(조종석 등)이 아니며 인물과 사물의 엄격한 배치가"} 19:58:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T10:58:34.170650+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 19:58:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:58:38.343039+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:58:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T10:58:38.346922+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 19:58:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-26T10:58:38.383833+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 19:58:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:58:43.384211+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:58:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-26T10:58:43.387407+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T10:58:54.366156+00:00", "level": "INFO", "logger": "app.modules.pipeline.search_grounded_ref", "message": "search_grounded_ref: 검색 1회 / 회수 사진 6장 · 나간 질의 [[\"2020년대 한국 동네 자전거포 내부 골목길 자전거 수리점 입구\", \"한국 골목길 자전거 수리점 문밖 풍경 자전거포 입구\"]]"} 19:58:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T10:58:55.349547+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 19:59:16 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T10:59:16.961859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 19:59:16 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T10:59:16.966023+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:55211 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55236 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T11:01:07.616771+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (594095 → 1282763 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} {"timestamp": "2026-08-26T11:01:13.329895+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (653668 → 1381781 bytes) [gemini-3.1-flash-image-preview/still_recipe_roll]"} 20:01:13 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T11:01:13.344116+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55264 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:01:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:01:47.220346+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:01:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T11:01:47.226062+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:55295 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:03:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T11:03:25.097125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55324 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:04:10 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:04:10.009017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:04:10 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T11:04:10.013091+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:55351 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55372 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:05:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T11:05:35.021177+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 20:05:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:05:57.122941+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:05:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T11:05:57.129005+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:55398 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55423 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55456 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55479 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55505 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:10:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T11:10:34.727793+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 20:10:44 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:10:44.617619+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:10:44 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T11:10:44.621145+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T11:10:53.926295+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (259570 → 1027190 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 20:10:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T11:10:53.939214+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/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:12:22 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:12:22.989816+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:12:22 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T11:12:22.991995+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:55556 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55588 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55611 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55633 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55658 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:16:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-26T11:16:38.287982+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:55679 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:17:42 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:17:42.938450+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:17:42 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-26T11:17:42.944029+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:55712 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55741 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55761 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK {"timestamp": "2026-08-26T11:21:17.298747+00:00", "level": "WARNING", "logger": "app.modules.pipeline.multiroll_select", "message": "multiroll_select[still_S3sh2]: fix-rejudge — 수정본 개악 판정, 선정 원본(B) 유지"} INFO: 127.0.0.1:55787 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55819 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK 20:22:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T11:22:43.155689+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 20:22:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:22:46.388220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:22:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T11:22:46.391186+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 20:22:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T11:22:46.433461+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 20:22:49 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:22:49.299232+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:22:49 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T11:22:49.301952+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T11:22:49.373092+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh2: 완료 (selected=B, fix=True)"} {"timestamp": "2026-08-26T11:22:49.379585+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline _execute_and_finalize crashed: cine 변환 실패 1샷(원본 fallback 영속): S2sh6 — 스텝을 완료로 닫지 않는다. resume 재진입이 실패 변환만 다시 시도한다. 영구 실패로 판단되면 STILL_CINE_TRANSFORM_ENABLED=false 전환 여부는 사람이 결정한다.\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1647, in _execute_and_finalize_inner\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/image_steps.py\", line 1387, in _execute\n svc.generate_images(episode_id=self.episode_id, mode=gen_mode)\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/services/scene_image_service.py\", line 409, in generate_images\n generated = run_still_recipe_generation(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/services/still_recipe_service.py\", line 5106, in run_still_recipe_generation\n raise StillCineTransformIncomplete(\napp.services.still_recipe_service.StillCineTransformIncomplete: cine 변환 실패 1샷(원본 fallback 영속): S2sh6 — 스텝을 완료로 닫지 않는다. resume 재진입이 실패 변환만 다시 시도한다. 영구 실패로 판단되면 STILL_CINE_TRANSFORM_ENABLED=false 전환 여부는 사람이 결정한다.\n"} {"timestamp": "2026-08-26T11:22:49.379671+00:00", "level": "ERROR", "logger": "app.services.step_execution_service", "message": "Step scene_image_pipeline failed: cine 변환 실패 1샷(원본 fallback 영속): S2sh6 — 스텝을 완료로 닫지 않는다. resume 재진입이 실패 변환만 다시 시도한다. 영구 실패로 판단되면 STILL_CINE_TRANSFORM_ENABLED=false 전환 여부는 사람이 결정한다."} INFO: 127.0.0.1:55854 - "GET /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:55879 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-26T11:24:06.340186+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913:8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9:scene_image_pipeline (Step scene_image_pipeline for 8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} INFO: 127.0.0.1:55879 - "POST /api/v1/projects/f1cf927b-c0e2-4dc9-ae2e-e29b6c5bf913/episodes/8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9/steps/scene_image_pipeline?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-26T11:24:06.348332+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=scene_image_pipeline status=running → force-like"} {"timestamp": "2026-08-26T11:24:06.349560+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline started (run_id=0de26131-344e-4938-ac16-c85d1ba6dd46, model=mixed)"} {"timestamp": "2026-08-26T11:24:06.359753+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T11:24:06.370173+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T11:24:06.371209+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T11:24:06.372180+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T11:24:06.379122+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T11:24:06.382306+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T11:24:06.383340+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T11:24:06.396984+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T11:24:06.404538+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T11:24:06.405534+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T11:24:06.406559+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T11:24:06.414552+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T11:24:06.418920+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T11:24:06.420276+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=-, repaired=0)"} {"timestamp": "2026-08-26T11:24:06.435197+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=8750a231: expected=8 registered=8 disk=8 missing=0"} {"timestamp": "2026-08-26T11:24:06.435813+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: scene — 7 completed, 0 failed"} {"timestamp": "2026-08-26T11:24:06.455562+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 7 existing reference images for 10 entities"} {"timestamp": "2026-08-26T11:24:06.455608+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-08-26T11:24:06.463212+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-26T11:24:06.463451+00:00", "level": "WARNING", "logger": "app.services.still_recipe_service", "message": "still_recipe: 운영자 선언 무콘티 예외 2샷 — BGFIRST 대상 제외 후 기존 경로 생성: ['S11sh1', 'S75sh7']"} {"timestamp": "2026-08-26T11:24:06.472677+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh2: confined fp 판별 제외 — 이 샷은 자전거 정비소 내부를 배경으로 하고 있으며, 조종석이나 승무원 탑승 공간과 같이 좌석 배치나 조작 장치의 위치가 중요한 통제 중심의 공"} {"timestamp": "2026-08-26T11:24:06.507394+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh4: confined fp 판별 제외 — 이 샷은 자전거 수리점 내부에서 두 인물이 서로 마주 보고 있는 장면입니다. 조종실이나 차량 내부처럼 복잡한 기기 조작부나 정확한 좌석 배치가 "} {"timestamp": "2026-08-26T11:24:06.583482+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh3: 노인(C03) pose-locked by prev S2sh1 — 캐릭터 참조 제외"} {"timestamp": "2026-08-26T11:24:06.606558+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh6: 노인(C03) pose-locked by prev S2sh3 — 캐릭터 참조 제외"} 20:25:23 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T11:25:23.064741+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 20:25:26 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:25:26.945521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:25:26 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T11:25:26.950972+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 20:25:27 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-26T11:25:27.007095+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 20:25:30 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-26T11:25:30.959068+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 20:25:30 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-26T11:25:30.963305+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-26T11:25:31.038141+00:00", "level": "WARNING", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh6: JIT 검증 — 입력이 낡아 재생성 (1/300)"} {"timestamp": "2026-08-26T11:25:31.052047+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh6: 완료 (selected=A, fix=True)"} {"timestamp": "2026-08-26T11:25:31.052915+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh1: confined fp 판별 제외 — 해당 샷은 자전거 수리점이라는 일반적인 실내 공간을 배경으로 하고 있으며, 차량 조종석이나 통제실과 같이 복잡하고 엄격한 좌석 배치나 조작 장치"} {"timestamp": "2026-08-26T11:25:31.102796+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh2: confined fp 판별 제외 — 이 샷은 자전거 수리점 문가에서 밖을 내다보는 장면으로, 복잡한 조종 장치가 있는 밀폐된 공간(조종석 등)이 아니며 인물과 사물의 엄격한 배치가"} {"timestamp": "2026-08-26T11:25:31.140054+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe JIT 검증 요약: 그대로 6 · 재생성 1 (그중 산출동일 0) · record없음(검증불가 skip) 0 · 실패 0"} {"timestamp": "2026-08-26T11:25:31.149533+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "still_recipe v1: 1/7 샷 생성 완료 (episode=8750a231-f2d4-4855-9a5a-8d7f9a3a0bc9)"} {"timestamp": "2026-08-26T11:25:31.158803+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline completed (completed=7/7, failed=0)"} {"timestamp": "2026-08-26T11:25:31.172409+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 7 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-26T11:25:31.182069+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-26T11:25:31.183125+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-26T11:25:31.184186+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced shot_type from scene_cinematography checkpoint (legacy)"} {"timestamp": "2026-08-26T11:25:31.191274+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-26T11:25:31.194867+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 9 total short_ids found"} {"timestamp": "2026-08-26T11:25:31.196430+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 8750a231, step=scene_image_pipeline, repaired=0)"} INFO: 127.0.0.1:63918 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [36468] /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 [83669] INFO: Waiting for application startup. {"timestamp": "2026-08-28T03:35:14.692782+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} {"timestamp": "2026-08-28T03:35:14.905615+00:00", "level": "WARNING", "logger": "app.main", "message": "Recovered 1 stale pipeline progress entries on startup"} {"timestamp": "2026-08-28T03:35:14.908650+00:00", "level": "INFO", "logger": "app.core.step_lock", "message": "스텝 락 하트비트 시작 (간격=30s, boot_id=ad28917b)"} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-08-28T03:35:53.456437+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 2 key(s) loaded"} INFO: 127.0.0.1:63961 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:63964 - "GET /openapi.json HTTP/1.1" 404 Not Found INFO: 127.0.0.1:63966 - "GET /openapi.json HTTP/1.1" 404 Not Found INFO: 127.0.0.1:63969 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-28T03:36:46.923175+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik usage 에 캐시 항목 기록 켬 (create_usage_object 래핑)"} {"timestamp": "2026-08-28T03:36:46.923223+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab, url: http://192.168.133.87:5173/api, cache_wiring=ok)"} 12:36:46 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-28T03:36:46.927752+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-28T03:36:46.927919+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 17 deployments (2 Gemini keys, OpenAI=True slot=primary/2)"} 12:36:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:36:46.949195+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:36:49 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T03:36:49.017508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 12:36:54 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:36:54.457473+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:36:55 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T03:36:55.253440+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 12:37:00 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:37:00.561331+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:37:00 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T03:37:00.926277+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 12:37:06 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:37:06.483865+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:37:07 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T03:37:07.543199+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 12:37:13 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T03:37:13.092340+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T03:37:13.092823+00:00", "level": "WARNING", "logger": "app.core.openai_keys", "message": "OpenAI 키 전환: primary → secondary (사유=429 · 지점=router.completion[gpt]). 이 프로세스는 이후 secondary 슬롯을 쓴다."} {"timestamp": "2026-08-28T03:37:13.092916+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router 무효화 — OpenAI 키 슬롯 전환 반영"} 12:37:13 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-28T03:37:13.101419+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-28T03:37:13.102892+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 17 deployments (2 Gemini keys, OpenAI=True slot=secondary/2)"} 12:37:13 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:37:13.103882+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:37:17 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:37:17.137273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:37:17 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a91026-d238-71c7-8000-edb527b884b9&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-28T03:37:17.139282+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:63971 - "POST /api/v1/projects/ HTTP/1.1" 200 OK INFO: 127.0.0.1:63987 - "POST /api/v1/projects/759e2b63-52cf-4d1b-8953-8599ac2a6141/episodes/ HTTP/1.1" 200 OK {"timestamp": "2026-08-28T03:37:44.988005+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: run_all:759e2b63-52cf-4d1b-8953-8599ac2a6141:3e83f3ee-ded7-4f2a-aded-01584d6ea5c5:all (Run all all steps for 3e83f3ee-ded7-4f2a-aded-01584d6ea5c5)"} INFO: 127.0.0.1:63999 - "POST /api/v1/projects/759e2b63-52cf-4d1b-8953-8599ac2a6141/episodes/3e83f3ee-ded7-4f2a-aded-01584d6ea5c5/steps/run-all?mode=resume&category=all&image_call_cap=400&approve_image_generation=true HTTP/1.1" 200 OK {"timestamp": "2026-08-28T03:37:45.002629+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=93969c7c-1f3e-4b68-9914-43d30fc600ab, model=gemini-lite)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a91028-900b-72d9-b934-8aa68f43e7ac&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-28T03:37:45.015120+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 골목끝.pdf (15407174 bytes, 2 pages) → model=gemini-lite"} 12:37:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:37:45.046451+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:37:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:37:53.879551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:37:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:37:53.882263+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:37:54.121800+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: extracted 898 chars from 골목끝.pdf (finish_reason=stop)"} {"timestamp": "2026-08-28T03:37:54.162722+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:37:54.163081+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step text_cleanup: completed"} {"timestamp": "2026-08-28T03:37:54.169404+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation started (run_id=37d4ce03-e76b-4dd8-949e-5dee90582949, model=gemini-flash)"} 12:37:54 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:37:54.182791+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:37:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:37:57.032841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:37:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:37:57.033991+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:37:57.037447+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "scene_segmentation 1회차: 후보 3개 · 통과 3개"} {"timestamp": "2026-08-28T03:37:57.037495+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "scene_segmentation 확정: ^#(\\d+)\\.\\s*.+?[–\\-]\\s*.+$ · 3개 · 헤딩 내용 1.00"} {"timestamp": "2026-08-28T03:37:57.042274+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:37:57.042355+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_segmentation: completed"} {"timestamp": "2026-08-28T03:37:57.046461+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary started (run_id=82d4d37c-1cd1-4dd8-97d2-0069f05aafac, model=gpt-mini)"} 12:37:57 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:37:57.050943+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:38:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:38:01.202326+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:38:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:38:01.203248+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:38:01.212264+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:38:01.212339+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_summary: completed"} {"timestamp": "2026-08-28T03:38:01.216633+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules started (run_id=c3634987-4444-44ac-80f2-3b8fe64fe41b, model=gpt)"} 12:38:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:38:01.220819+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:38:15 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:38:15.436947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:38:15 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:38:15.437955+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:38:15.440342+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "VisualWorldRulesStep: 3 rules, era=동시대 현대, region=대한민국의 도시 또는 주거 밀집 지역, planning_doc=False"} {"timestamp": "2026-08-28T03:38:15.444751+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:38:15.444823+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_world_rules: completed"} {"timestamp": "2026-08-28T03:38:15.448765+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save started (run_id=4b833cec-ba50-478b-96b4-9c51276c2bd7, model=-)"} {"timestamp": "2026-08-28T03:38:15.452665+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:38:15.452724+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_save: completed"} {"timestamp": "2026-08-28T03:38:15.456255+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list started (run_id=97224687-3c46-4fca-8411-ab53baba3d94, model=gpt)"} 12:38:15 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:38:15.459869+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:38:17 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:38:17.027852+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:38:17 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:38:17.028799+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:38:17.030449+00:00", "level": "INFO", "logger": "app.core.steps.character_list_step", "message": "entity_character_list: 3 characters extracted"} {"timestamp": "2026-08-28T03:38:17.034662+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:38:17.034739+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_character_list: completed"} {"timestamp": "2026-08-28T03:38:17.038804+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary started (run_id=96b23c30-06c5-47b3-9ff0-6acf8ff2f27b, model=gpt-mini)"} 12:38:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:38:17.042232+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:38:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:38:17.044055+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:38:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:38:17.044481+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:38:19 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:38:19.573023+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:38:19 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:38:19.573792+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 12:38:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:38:20.367202+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:38:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:38:20.372569+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 12:38:21 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:38:21.717584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:38:21 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:38:21.720980+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:38:21.724879+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "SceneSummaryStep: 3/3 scenes summarized (0 failed)"} {"timestamp": "2026-08-28T03:38:21.730916+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:38:21.731121+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_summary: completed"} {"timestamp": "2026-08-28T03:38:21.739484+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract started (run_id=1a4685fa-b9fd-41be-bd4b-f60abd24e41f, model=gemini-pro)"} {"timestamp": "2026-08-28T03:38:21.740494+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: visual_world_rules에 director_notes 없음 — 물리적 존재 기준 미적용"} {"timestamp": "2026-08-28T03:38:21.740898+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 characters injected"} {"timestamp": "2026-08-28T03:38:21.744094+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 scenes → 1 bundles"} 12:38:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:21.746186+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:21 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:21.930975+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:21.932017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:22 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:22.034519+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:22.035488+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:22 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:22.151058+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:22.152129+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:22 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:22.278956+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:22 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T03:38:22.283185+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T03:38:22.283340+00:00", "level": "WARNING", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3) retry 1/5: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None LiteLLM Retried: 2 times, LiteLLM Max Retries: 3"} 12:38:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:24.294692+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:24 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:24.477337+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:24.478237+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:24 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:24.566908+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:24.567872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:24 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:24.665220+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:24.666341+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:24 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:24.780882+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:24 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T03:38:24.784886+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T03:38:24.785047+00:00", "level": "WARNING", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3) retry 2/5: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None LiteLLM Retried: 2 times, LiteLLM Max Retries: 3"} 12:38:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:26.787424+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:26 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:26.944284+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:26.945191+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:27 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:27.042746+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:27 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:27.043537+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:27 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:27.161554+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:27 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:27.162575+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:27 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:27.272666+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:27 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T03:38:27.276564+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T03:38:27.276684+00:00", "level": "WARNING", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3) retry 3/5: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None LiteLLM Retried: 2 times, LiteLLM Max Retries: 3"} 12:38:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:29.281687+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:29 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:29.472035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:29.472893+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:29 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:29.567934+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:29.568961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:29 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:29.669707+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:29.670518+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:29 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:29.758733+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:29 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T03:38:29.763027+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T03:38:29.763217+00:00", "level": "WARNING", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3) retry 4/5: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None LiteLLM Retried: 2 times, LiteLLM Max Retries: 3"} 12:38:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:31.774501+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:31 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:31.950147+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:31.951357+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:32 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:32.046794+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:32.047762+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:32 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:32.271714+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:32.272603+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:32 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:32.395096+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:32 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T03:38:32.399577+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T03:38:32.399744+00:00", "level": "WARNING", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3) retry 5/5: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None LiteLLM Retried: 2 times, LiteLLM Max Retries: 3"} 12:38:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:34.410347+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:34 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:34.576827+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:34.577725+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:34 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:34.742245+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:34.743220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:34 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:34.857141+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:38:34.857980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:38:35 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2" }, { "field": "generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]", "description": "Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3" } ] } ] } }  {"timestamp": "2026-08-28T03:38:35.029204+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n\u001b[0m"} 12:38:35 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T03:38:35.033260+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T03:38:35.033375+00:00", "level": "WARNING", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3) FAILED after 5 retries: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\\nInvalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.BadRequest\",\n \"fieldViolations\": [\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[0]' (TYPE_STRING), 1\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[1]' (TYPE_STRING), 2\"\n },\n {\n \"field\": \"generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]\",\n \"description\": \"Invalid value at 'generation_config.response_schema.properties[0].value.items.properties[0].value.enum[2]' (TYPE_STRING), 3\"\n }\n ]\n }\n ]\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None LiteLLM Retried: 2 times, LiteLLM Max Retries: 3"} {"timestamp": "2026-08-28T03:38:35.033486+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 0 scenes, 0 beats"} {"timestamp": "2026-08-28T03:38:35.036132+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract failed (completed=0/3, failed=3)"} {"timestamp": "2026-08-28T03:38:35.036192+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step beat_extract: failed"} {"timestamp": "2026-08-28T03:38:35.036225+00:00", "level": "ERROR", "logger": "app.services.analysis_dispatch_service", "message": "Step beat_extract failed, stopping pipeline"} INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [83669] /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 [85429] INFO: Waiting for application startup. {"timestamp": "2026-08-28T03:42:08.224930+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} {"timestamp": "2026-08-28T03:42:08.423478+00:00", "level": "INFO", "logger": "app.core.step_lock", "message": "스텝 락 하트비트 시작 (간격=30s, boot_id=3ac112fc)"} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-08-28T03:42:10.944911+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 2 key(s) loaded"} INFO: 127.0.0.1:64171 - "GET /api/v1/health HTTP/1.1" 200 OK {"timestamp": "2026-08-28T03:42:19.372664+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: run_all:759e2b63-52cf-4d1b-8953-8599ac2a6141:3e83f3ee-ded7-4f2a-aded-01584d6ea5c5:all (Run all all steps for 3e83f3ee-ded7-4f2a-aded-01584d6ea5c5)"} INFO: 127.0.0.1:64174 - "POST /api/v1/projects/759e2b63-52cf-4d1b-8953-8599ac2a6141/episodes/3e83f3ee-ded7-4f2a-aded-01584d6ea5c5/steps/run-all?mode=resume&category=all&image_call_cap=400&approve_image_generation=true HTTP/1.1" 200 OK {"timestamp": "2026-08-28T03:42:19.387429+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step text_cleanup: skipped"} {"timestamp": "2026-08-28T03:42:19.389162+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_segmentation: skipped"} {"timestamp": "2026-08-28T03:42:19.390554+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_summary: skipped"} {"timestamp": "2026-08-28T03:42:19.392498+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_world_rules: skipped"} {"timestamp": "2026-08-28T03:42:19.394064+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_save: skipped"} {"timestamp": "2026-08-28T03:42:19.396553+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_character_list: skipped"} {"timestamp": "2026-08-28T03:42:19.400491+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_summary: skipped"} {"timestamp": "2026-08-28T03:42:19.405776+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=beat_extract status=running → force-like"} {"timestamp": "2026-08-28T03:42:19.406807+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract started (run_id=223c6b2f-9a49-4cd8-bf33-9e2a839d1363, model=gemini-pro)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a91039-b686-7994-be17-4d824110f255&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-28T03:42:19.418011+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: visual_world_rules에 director_notes 없음 — 물리적 존재 기준 미적용"} {"timestamp": "2026-08-28T03:42:19.418143+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 characters injected"} {"timestamp": "2026-08-28T03:42:19.421830+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 scenes → 1 bundles"} {"timestamp": "2026-08-28T03:42:19.422065+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik usage 에 캐시 항목 기록 켬 (create_usage_object 래핑)"} {"timestamp": "2026-08-28T03:42:19.422123+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab, url: http://192.168.133.87:5173/api, cache_wiring=ok)"} 12:42:19 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-28T03:42:19.426965+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-28T03:42:19.427247+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 17 deployments (2 Gemini keys, OpenAI=True slot=primary/2)"} {"timestamp": "2026-08-28T03:42:19.427329+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'beat_extract_1': Gemini 는 문자열 enum 만 받는다 — integer 형 enum 1개 걷음. 계약은 호출부 검증·재시도가 지킨다 (process 당 1회 로그)"} 12:42:19 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:42:19.448318+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:42:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:42:46.702331+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:42:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a9103b-6b49-74e5-8000-7e69cda4aa88&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-28T03:42:46.706403+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:42:46.715091+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3): 3 scenes, 6 beats"} {"timestamp": "2026-08-28T03:42:46.715312+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 scenes, 6 beats"} {"timestamp": "2026-08-28T03:42:46.719879+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:42:46.719962+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step beat_extract: completed"} {"timestamp": "2026-08-28T03:42:46.724409+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract started (run_id=381ea154-7580-42ca-904f-be75ecf4d714, model=gemini-pro)"} {"timestamp": "2026-08-28T03:42:46.724873+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: visual_world_rules에 director_notes 없음 — 물리적 존재 기준 미적용"} {"timestamp": "2026-08-28T03:42:46.724904+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: t2i_context injected (361 chars)"} {"timestamp": "2026-08-28T03:42:46.725182+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 3 characters injected as enum"} {"timestamp": "2026-08-28T03:42:46.727585+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=shot_extract stem=shot_schema.json loaded_from=10.202604151200 (latest_in_module=17.202607222348). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} {"timestamp": "2026-08-28T03:42:46.727965+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 3 scenes → 1 bundles (sequential)"} {"timestamp": "2026-08-28T03:42:46.728120+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'shot_extract_1': Gemini 는 문자열 enum 만 받는다 — integer 형 enum 1개 걷음. 계약은 호출부 검증·재시도가 지킨다 (process 당 1회 로그)"} 12:42:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:42:46.730840+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:43:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:43:31.242726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:43:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:43:31.246152+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:43:31.249972+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 1 (scenes 1~3): 3 scenes, 17 shots"} {"timestamp": "2026-08-28T03:43:31.250055+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 3 scenes, 17 shots"} {"timestamp": "2026-08-28T03:43:31.255721+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:43:31.255783+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_extract: completed"} {"timestamp": "2026-08-28T03:43:31.259800+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator started (run_id=9e42815d-c396-44ba-8a36-0c65e6b982df, model=gemini-pro)"} {"timestamp": "2026-08-28T03:43:31.264854+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."} {"timestamp": "2026-08-28T03:43:31.266184+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} 12:43:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:43:31.267616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:43:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:43:31.268237+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:43:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:43:31.269143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:43:49 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:43:49.716195+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:43:49 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:43:49.723837+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 12:43:52 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:43:52.158476+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:43:52 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:43:52.162141+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 12:43:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:43:57.774570+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:43:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:43:57.777474+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:43:57.787954+00:00", "level": "INFO", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: 3 scenes, 17 shots total, 2 revised, 0 failed"} {"timestamp": "2026-08-28T03:43:57.795464+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:43:57.795729+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_validator: completed"} {"timestamp": "2026-08-28T03:43:57.801797+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character started (run_id=a8d8cea4-e30d-42f1-8acc-9106d6b3cac1, model=gpt)"} 12:43:57 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:43:57.805492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:43:58 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T03:43:58.831667+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 12:44:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:44:04.388999+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:44:04 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T03:44:04.708893+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 12:44:10 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:44:10.301731+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:44:10 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T03:44:10.555999+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 12:44:15 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:44:15.691028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:44:15 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T03:44:15.882282+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 12:44:21 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T03:44:21.284015+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T03:44:21.284479+00:00", "level": "WARNING", "logger": "app.core.openai_keys", "message": "OpenAI 키 전환: primary → secondary (사유=429 · 지점=router.completion[gpt]). 이 프로세스는 이후 secondary 슬롯을 쓴다."} {"timestamp": "2026-08-28T03:44:21.284577+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router 무효화 — OpenAI 키 슬롯 전환 반영"} 12:44:21 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-28T03:44:21.291937+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-28T03:44:21.292504+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 17 deployments (2 Gemini keys, OpenAI=True slot=secondary/2)"} 12:44:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:44:21.293634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:44:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:44:25.308704+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:44:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:44:25.311194+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:44:25.316083+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_character (shot-based, 1 call): 3 entities from 17 shots"} {"timestamp": "2026-08-28T03:44:25.322231+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:44:25.322503+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_character: completed"} {"timestamp": "2026-08-28T03:44:25.328096+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character started (run_id=e2d5bc5a-b826-411c-8569-61ee96f6d75b, model=gpt)"} 12:44:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:44:25.336038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:44:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:44:35.780199+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:44:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:44:35.782306+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:44:35.798815+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:44:35.799349+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_character: completed"} {"timestamp": "2026-08-28T03:44:35.806337+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location started (run_id=5bbbf6cd-eff2-4b1e-9c61-842d43004bb9, model=gpt)"} 12:44:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:44:35.813586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:44:37 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:44:37.671229+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:44:37 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:44:37.674317+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:44:37.682133+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_location (shot-based, 1 call): 2 entities from 17 shots"} {"timestamp": "2026-08-28T03:44:37.688608+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-28T03:44:37.688876+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_location: completed"} {"timestamp": "2026-08-28T03:44:37.694688+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location started (run_id=62adea9e-1f2a-4adb-bb82-adfa21a5b17c, model=gemini-pro)"} 12:44:37 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:44:37.699557+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:44:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:44:46.846957+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:44:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:44:46.850539+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:44:46.864765+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-28T03:44:46.865014+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_location: completed"} {"timestamp": "2026-08-28T03:44:46.871974+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop started (run_id=f2963371-57ec-4ddd-a71d-7795b82dd4af, model=gpt)"} 12:44:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:44:46.875763+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:44:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:44:51.947011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:44:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:44:51.949793+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:44:51.958525+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_prop (shot-based, 1 call): 5 entities from 17 shots"} {"timestamp": "2026-08-28T03:44:51.966588+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop completed (completed=5/5, failed=0)"} {"timestamp": "2026-08-28T03:44:51.966928+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_prop: completed"} {"timestamp": "2026-08-28T03:44:51.971896+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop started (run_id=32c2b3dd-de1a-43d0-b4a5-82135ad36fbd, model=gemini-pro)"} 12:44:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:44:51.977879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:45:11 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:45:11.110336+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:45:11 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:45:11.111735+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:45:11.128935+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop completed (completed=5/5, failed=0)"} {"timestamp": "2026-08-28T03:45:11.129171+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_prop: completed"} {"timestamp": "2026-08-28T03:45:11.138112+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge started (run_id=6b58df7d-f927-4786-96d7-6ea734065236, model=gpt)"} 12:45:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:45:11.143563+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:45:12 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:45:12.635149+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:45:12 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:45:12.637412+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:45:12.649070+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge completed (completed=10/10, failed=0)"} {"timestamp": "2026-08-28T03:45:12.649462+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_merge: completed"} {"timestamp": "2026-08-28T03:45:12.654829+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation started (run_id=3dc86f6d-aada-4547-8f14-985edffa411b, model=gpt)"} 12:45:12 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:45:12.667855+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:45:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:45:14.462894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:45:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:45:14.464425+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:45:14.466549+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_relation", "message": "Entity relations: 0 candidates → 0 confirmed (0 visual_similar)"} {"timestamp": "2026-08-28T03:45:14.471041+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:45:14.471112+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_relation: completed"} {"timestamp": "2026-08-28T03:45:14.475245+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter started (run_id=87ed9960-3a39-4900-b9ae-d1be16ce77bc, model=gpt-mini)"} 12:45:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:45:14.481439+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:45:19 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:45:19.616428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:45:19 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:45:19.618172+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:45:19.627697+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_filter", "message": "Filtered 4 low-freq entities → removed 4"} {"timestamp": "2026-08-28T03:45:19.634586+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:45:19.634821+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_filter: completed"} {"timestamp": "2026-08-28T03:45:19.639369+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail started (run_id=a259975d-13b0-45ec-bce5-de2b1d6fc24c, model=gpt)"} 12:45:19 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:45:19.650496+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:45:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:45:51.247426+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:45:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:45:51.249603+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:45:51.268784+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T03:45:51.268925+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_detail: completed"} {"timestamp": "2026-08-28T03:45:51.275365+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i started (run_id=036e3413-6301-4047-a3a3-db0ba22e2d45, model=gemini-pro)"} 12:45:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:45:51.280119+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:45:52 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:45:52.286855+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:45:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:45:53.295417+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:45:54 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:45:54.305950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:45:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:45:55.307970+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:45:56 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:45:56.320411+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:46:02 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:02.817585+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:02 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:46:02.819105+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 12:46:05 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:05.711950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:05 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:46:05.716311+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 12:46:05 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:05.976182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:05 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:46:05.979077+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 12:46:08 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:08.958282+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:08 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:46:08.959833+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 12:46:10 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:10.799537+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:10 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:46:10.800932+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 12:46:15 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:15.736011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:15 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:46:15.738913+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:46:15.770390+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T03:46:15.770636+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_t2i: completed"} {"timestamp": "2026-08-28T03:46:15.780642+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection started (run_id=e160dfeb-f6e0-4a00-b652-87b21946d20c, model=gpt-mini)"} {"timestamp": "2026-08-28T03:46:15.788819+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 0 scenes auto-selected (1-shot), 3 scenes to evaluate (abs_max=3, ratio_cap=50%)"} 12:46:15 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:46:15.794654+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:46:15 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:46:15.796697+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:46:15 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:46:15.797164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:46:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:20.994779+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:46:20.997449+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:46:21.005768+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 2: 2/5 selected (eff_max=2)"} 12:46:21 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:21.959166+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:21 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:46:21.962408+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:46:21.969406+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 3: 2/6 selected (eff_max=3)"} 12:46:24 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:24.847059+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:24 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:46:24.851087+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:46:24.856342+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 1: 2/6 selected (eff_max=3)"} {"timestamp": "2026-08-28T03:46:24.856715+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 6/17 shots selected across 3 scenes"} {"timestamp": "2026-08-28T03:46:24.871836+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:46:24.872061+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_selection: completed"} {"timestamp": "2026-08-28T03:46:24.909175+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:46:24.921468+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:46:24.935668+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:46:24.938360+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} {"timestamp": "2026-08-28T03:46:24.950952+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=4a424acf-abb7-47a8-9b41-17955066078d, model=gemini-pro)"} {"timestamp": "2026-08-28T03:46:24.954294+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} 12:46:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:46:24.958737+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:46:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:36.073991+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:46:36.075307+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:46:36.085493+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:46:36.085564+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_director: completed"} {"timestamp": "2026-08-28T03:46:36.101134+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:46:36.104171+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:46:36.106523+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:46:36.108176+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=scene_director, repaired=0)"} {"timestamp": "2026-08-28T03:46:36.113348+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director started (run_id=506e1c77-6437-472d-af2e-b5a53c2b959e, model=gpt)"} 12:46:36 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:46:36.119470+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:46:40 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:41.000023+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:41 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:46:41.002469+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:46:41 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:46:41.019115+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:46:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:47.055515+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:46:47.057648+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:46:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:46:47.077545+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:46:55 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:46:55.203298+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:46:55 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:46:55.205438+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:46:55.209963+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_director", "message": "shot_director: 3 scenes (3 LLM, 0 skipped), 6 total shots"} {"timestamp": "2026-08-28T03:46:55.220796+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:46:55.220891+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_director: completed"} {"timestamp": "2026-08-28T03:46:55.231018+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow started (run_id=ca422ed0-4ce3-4c26-a9e7-da7d2f94b823, model=gpt)"} {"timestamp": "2026-08-28T03:46:55.234446+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=scene_camera_flow stem=schema.json loaded_from=2.202607080130 (latest_in_module=5.202608130110). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} 12:46:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:46:55.237280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:46:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:46:55.237962+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:46:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:46:55.238374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:47:08 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:47:08.445670+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:47:08 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:47:08.446845+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:47:08.453234+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S2: 4 stages, 2 shot assignments"} 12:47:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:47:14.871867+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:47:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:47:14.873984+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:47:14.879512+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S3: 4 stages, 2 shot assignments"} 12:47:18 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:47:18.369584+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:47:18 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:47:18.372167+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:47:18.389518+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S1: 5 stages, 2 shot assignments"} {"timestamp": "2026-08-28T03:47:18.402669+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:47:18.402807+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_camera_flow: completed"} {"timestamp": "2026-08-28T03:47:18.409966+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency started (run_id=a02748a1-a83b-4e90-a7d7-4e91b101829c, model=gpt)"} {"timestamp": "2026-08-28T03:47:18.411097+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_step", "message": "shot_dependency: 4/6 shots linked (code-based scoring)"} {"timestamp": "2026-08-28T03:47:18.416325+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T03:47:18.416428+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency: completed"} {"timestamp": "2026-08-28T03:47:18.429366+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:47:18.433795+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:47:18.439062+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:47:18.441573+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} {"timestamp": "2026-08-28T03:47:18.452209+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 started (run_id=2b09eac1-1442-41b1-af77-f27360ed69c8, model=gemini-pro)"} {"timestamp": "2026-08-28T03:47:18.457299+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1: 3 scenes, 3 characters"} 12:47:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:47:18.463759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:47:27 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:47:27.990947+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:47:27 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:47:27.994301+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:47:28.004905+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 complete: 3 outlooks (O01~O03)"} {"timestamp": "2026-08-28T03:47:28.018070+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:47:28.018500+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase1: completed"} {"timestamp": "2026-08-28T03:47:28.040087+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:47:28.045925+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:47:28.055272+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:47:28.059627+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=outlook_phase1, repaired=0)"} {"timestamp": "2026-08-28T03:47:28.081950+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:47:28.087876+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:47:28.101109+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:47:28.104761+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} {"timestamp": "2026-08-28T03:47:28.115271+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=2a0b8f87-b9b9-4606-b9a0-a3c02450efa0, model=gemini-pro)"} {"timestamp": "2026-08-28T03:47:28.120844+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 3 outlooks to 3 scenes (O00: 0 chars excluded)"} 12:47:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:47:28.127753+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:47:39 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:47:39.854479+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:47:39 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:47:39.855973+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:47:39.859141+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 3 scene assignments"} {"timestamp": "2026-08-28T03:47:39.869156+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:47:39.869241+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase2: completed"} {"timestamp": "2026-08-28T03:47:39.884539+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:47:39.888024+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:47:39.890777+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:47:39.892648+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=outlook_phase2, repaired=0)"} {"timestamp": "2026-08-28T03:47:39.902633+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:47:39.906095+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:47:39.910400+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:47:39.911995+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} {"timestamp": "2026-08-28T03:47:39.916154+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=39d8508b-5deb-4ef3-bf64-aab885f623ec, model=gemini-pro)"} {"timestamp": "2026-08-28T03:47:39.917959+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 3 outlooks, 3 assignments (O00 protected)"} 12:47:39 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:47:39.921018+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:47:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:47:46.970502+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:47:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:47:46.973918+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:47:46.979427+00:00", "level": "INFO", "logger": "app.modules.pipeline.outlook_extractor_v2", "message": "Phase3 code cleanup: 3→3 outlooks (removed 0, merged 0)"} {"timestamp": "2026-08-28T03:47:46.979585+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 3 outlooks (removed 0)"} {"timestamp": "2026-08-28T03:47:46.990692+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=3/1, failed=0)"} {"timestamp": "2026-08-28T03:47:46.990943+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase3: completed"} {"timestamp": "2026-08-28T03:47:47.020485+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:47:47.031010+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:47:47.057678+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +3 / -0)"} {"timestamp": "2026-08-28T03:47:47.064757+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:47:47.069616+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=outlook_phase3, repaired=0)"} {"timestamp": "2026-08-28T03:47:47.083329+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging started (run_id=9838f4c9-fe0e-4a8c-940d-9f1026b4e9ef, model=gpt)"} {"timestamp": "2026-08-28T03:47:47.093748+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging: 6 selected shots to analyze"} 12:47:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:47:47.103268+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:49:09 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:49:09.819232+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:49:09 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:49:09.822270+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:49:09.841508+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 1/1 attempt 1: 6 shots ok"} {"timestamp": "2026-08-28T03:49:09.854661+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T03:49:09.854801+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_staging: completed"} {"timestamp": "2026-08-28T03:49:09.866619+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify started (run_id=ce261d59-21f9-4276-9814-443c7080b283, model=gpt)"} 12:49:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:49:09.874989+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:49:13 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:49:13.312813+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:49:13 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:49:13.313868+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:49:13.338010+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:49:13.338281+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_classify: completed"} {"timestamp": "2026-08-28T03:49:13.356342+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan started (run_id=a11e112d-a35b-4a2c-adc8-a0f3327c8e9d, model=gpt)"} 12:49:13 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:49:13.372529+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:49:19 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:49:19.266014+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:49:19 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:49:19.268342+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:49:19.301853+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:49:19.302102+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_master_plan: completed"} {"timestamp": "2026-08-28T03:49:19.320320+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt started (run_id=3fec4103-4112-41fb-9e8f-4f3ed72e8aa0, model=gpt)"} 12:49:19 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:49:19.326653+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:50:02 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:50:02.701919+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:50:02 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:50:02.704630+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:50:02.729926+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:50:02.730065+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_prompt: completed"} {"timestamp": "2026-08-28T03:50:02.737902+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_essence_extraction: not_applicable"} {"timestamp": "2026-08-28T03:50:02.756831+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency started (run_id=3950c4a4-61ad-4d4b-9d67-48efc16dbac8, model=gemini-pro)"} {"timestamp": "2026-08-28T03:50:02.761620+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency: 3 scenes need LLM (workers=3, already_done=0, single_shot_skipped=0)"} 12:50:02 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:50:02.765591+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:50:02 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:50:02.768450+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:50:02 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:50:02.769946+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:50:26 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:50:26.302178+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:50:26 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:50:26.303577+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:50:26.307241+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S3: 1 fixed elements"} 12:50:26 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:50:26.422801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:50:26 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:50:26.426249+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:50:26.440919+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S1: 1 fixed elements"} 12:50:30 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:50:30.639621+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:50:30 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:50:30.643030+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:50:30.657164+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S2: 2 fixed elements"} {"timestamp": "2026-08-28T03:50:30.666811+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T03:50:30.666906+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_consistency: completed"} {"timestamp": "2026-08-28T03:50:30.673979+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render started (run_id=653cd366-8228-46e5-8089-0dff0187a29a, model=gpt)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=01a0467f-67f4-7cd3-b4d6-4dbb1f22f26d&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-28T03:52:29.955065+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: registered 1 floor_plan ImageAssets"} {"timestamp": "2026-08-28T03:52:29.964095+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:52:29.964175+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_render: completed"} {"timestamp": "2026-08-28T03:52:29.967731+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar started (run_id=955f8778-d293-460d-8094-b8c24bea0868, model=gpt)"} {"timestamp": "2026-08-28T03:52:29.971320+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:52:29.971395+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_light_sidecar: completed"} {"timestamp": "2026-08-28T03:52:29.975833+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload started (run_id=f013ee8f-f391-44d0-90fe-f0330a83e7fb, model=gpt)"} {"timestamp": "2026-08-28T03:52:29.979536+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:52:29.979599+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_overlay_payload: completed"} {"timestamp": "2026-08-28T03:52:29.983695+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier started (run_id=ed30b891-3e50-49d3-999e-5e95185fde14, model=gpt)"} {"timestamp": "2026-08-28T03:52:29.987109+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:52:29.987177+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step base_location_dossier: completed"} {"timestamp": "2026-08-28T03:52:29.991404+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback started (run_id=5d7e8e17-d311-475e-b162-1a76e85153a1, model=gpt)"} 12:52:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:52:29.996559+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:52:50 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:52:50.173951+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:52:50 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:52:50.175488+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:52:50.208804+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:52:50.208936+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_geometry_readback: completed"} {"timestamp": "2026-08-28T03:52:50.219033+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback started (run_id=fa15518d-3805-4a39-90b0-d8d618bf8caa, model=gpt)"} {"timestamp": "2026-08-28T03:52:50.223232+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:52:50.223322+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_semantic_readback: completed"} {"timestamp": "2026-08-28T03:52:50.230961+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card started (run_id=3ee443e6-e2fd-4085-9114-dc090e69dacd, model=gpt)"} {"timestamp": "2026-08-28T03:52:50.234275+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:52:50.234340+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_projection_card: completed"} {"timestamp": "2026-08-28T03:52:50.239436+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition started (run_id=5921b54a-0767-49f8-a1b5-1ef1e2a3a381, model=gpt)"} {"timestamp": "2026-08-28T03:52:50.242894+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:52:50.242972+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step bg_space_partition: completed"} {"timestamp": "2026-08-28T03:52:50.248347+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map started (run_id=b42bdab0-e4ac-4be7-acc8-6f4470a9af7a, model=gpt)"} {"timestamp": "2026-08-28T03:52:50.252606+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:52:50.252660+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step dwelling_zone_map: completed"} {"timestamp": "2026-08-28T03:52:50.258298+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan started (run_id=a8e8b394-2214-42a4-9864-09a1753cb032, model=gpt)"} 12:52:50 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:52:50.262722+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:53:22 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:53:22.366382+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-08-28T03:53:22.381496+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:53:22.381621+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_aware_bg_render_plan: completed"} {"timestamp": "2026-08-28T03:53:22.390879+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt started (run_id=62a1f22d-8a75-4b4d-9183-d5e665148572, model=gpt)"} 12:53:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:53:22.396804+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:53:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:53:22.397368+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:53:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:53:43.158624+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:53:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:53:43.164235+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:53:49 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:53:49.865547+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:53:49 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:53:49.869192+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:53:49.892121+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-28T03:53:49.892492+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_prompt: completed"} {"timestamp": "2026-08-28T03:53:49.905039+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy started (run_id=b9b8bc50-3638-40b5-9e81-b96c025397cb, model=gpt)"} {"timestamp": "2026-08-28T03:53:49.911494+00:00", "level": "INFO", "logger": "app.core.steps.episode_reference_policy_step", "message": "episode_reference_policy: 7 entities — 3 text_only, 4 other"} {"timestamp": "2026-08-28T03:53:49.915366+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy completed (completed=7/7, failed=0)"} {"timestamp": "2026-08-28T03:53:49.915436+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_reference_policy: completed"} {"timestamp": "2026-08-28T03:53:49.924383+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor started (run_id=cd5af04b-9ab5-416d-9122-02fe6f200bfc, model=gpt)"} 12:53:49 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:53:49.935287+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:54:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:04.515675+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:04 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:54:04.518499+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:54:04.541977+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:54:04.542233+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_continuity_anchor: completed"} {"timestamp": "2026-08-28T03:54:04.570570+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:54:04.577661+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T03:54:04.590844+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T03:54:04.600257+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T03:54:04.602989+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} {"timestamp": "2026-08-28T03:54:04.614061+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail started (run_id=924a4d74-50e0-4778-b12d-9cddbc2b293e, model=gemini-pro)"} {"timestamp": "2026-08-28T03:54:04.620434+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-28T03:54:04.620819+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-28T03:54:04.622872+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-28T03:54:04.623126+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-28T03:54:04.645974+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 1 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-28T03:54:04.649070+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail: 3 segments → 6 tasks (shot-based, 0 edited skipped)"} {"timestamp": "2026-08-28T03:54:04.663479+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible prop target P01 (visible=['L01'])"} {"timestamp": "2026-08-28T03:54:04.680644+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C01 (visible=[]) render_prompt_card:s1.shot5"} 12:54:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:54:04.702488+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:54:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:54:04.723685+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:54:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:54:04.725402+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:54:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:54:04.726497+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:54:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:54:04.727632+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:54:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:32.749929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:54:32.754334+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:54:32.775793+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 1: 제거할 ID: L01 — retry"} 12:54:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:54:32.783001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:54:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:38.799476+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:54:38.804289+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:54:38.826806+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: 제거할 ID: L01 — retry"} 12:54:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:54:38.832913+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:54:45 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:45.305760+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:45 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:54:45.309804+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:54:45.325033+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible prop target P01 (visible=['L01'])"} {"timestamp": "2026-08-28T03:54:45.325186+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C01 (visible=[]) render_prompt_card:s1.shot5"} 12:54:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:54:45.337882+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:54:45 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:45.913132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:45 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:54:45.917227+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:54:45.938523+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-28T03:54:45.938659+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 12:54:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:54:45.953186+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:54:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:53.181299+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:54:53.185120+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 12:54:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:54:53.215876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:54:54 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:54.837380+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:54 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:54:54.841990+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 12:54:54 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:54:54.864471+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:54:56 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:56.320221+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:56 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:54:56.324520+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:54:56.340008+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 12:54:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:54:59.168431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:54:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:54:59.173156+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 12:54:59 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:54:59.192764+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:55:03 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:55:03.281086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:55:03 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:55:03.285166+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:55:03.291844+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail owned_repair S1_Shot5: owned redraw repair 성공 — 2 redraw_violation 해소"} 12:55:13 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:55:13.081601+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:55:13 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:55:13.084861+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 12:55:17 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:55:17.522818+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:55:17 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:55:17.525517+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:55:17.550501+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: retry 후에도 위반 {'L00'} — 강제 제거"} 12:55:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:55:20.923404+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:55:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:55:20.926050+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:55:20.941036+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 3: 제거할 ID: L01 — retry"} 12:55:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T03:55:20.948285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 12:55:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:55:51.532683+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:55:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T03:55:51.535414+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:55:51.556866+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot3 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-28T03:55:51.566486+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-28T03:55:51.566896+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-28T03:55:51.570410+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-28T03:55:51.570665+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-28T03:55:51.572885+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-28T03:55:51.573155+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-28T03:55:51.585725+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 1 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-28T03:55:51.595418+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible prop target P01 (visible=['L01'])"} {"timestamp": "2026-08-28T03:55:51.595557+00:00", "level": "WARNING", "logger": "app.core.subject_reference_policy", "message": "subject_reference_policy: dropping policy for non-shot-visible subject C01 (visible=[]) render_prompt_card:s1.shot5"} {"timestamp": "2026-08-28T03:55:51.637958+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T03:55:51.638089+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_detail: completed"} {"timestamp": "2026-08-28T03:55:51.656843+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T03:55:51.675365+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T03:55:51.677057+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T03:55:51.687289+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T03:55:51.691175+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 8 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T03:55:51.695291+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-28T03:55:51.700095+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i started (run_id=511f14e0-f6b5-4bb2-bc29-30c6fdaf867b, model=gpt-mini)"} 12:55:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:55:51.705041+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:55:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:55:57.223358+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:55:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:55:57.228387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:55:57.241493+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L01 (4 shots) — LLM OK"} 12:55:57 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T03:55:57.250906+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 12:56:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:56:01.894091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:56:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T03:56:01.897742+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:56:01.913770+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L02 (2 shots) — LLM OK"} {"timestamp": "2026-08-28T03:56:01.914974+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: 3/6 linked (LLM-based)"} {"timestamp": "2026-08-28T03:56:01.923489+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T03:56:01.923775+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency_t2i: completed"} {"timestamp": "2026-08-28T03:56:01.937979+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review started (run_id=9fee4930-1552-48e5-b56b-c6bbd1fb861d, model=gpt)"} 12:56:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:56:01.951836+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:56:09 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:56:09.757484+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:56:09 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:56:09.762185+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:56:09.773560+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity C01 [awkward_translation]: 시대 배경을 나타내는 영어 표현 'contemporary modern era'가 의미상 중복되어 어색합니다. 재생성 시 원문의 현대 배경을 자연"} {"timestamp": "2026-08-28T03:56:09.773781+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L02 [awkward_translation]: 배경을 나타내는 'Set in contemporary modern'이 문법적으로 불완전하고 의미상 중복되어 어색합니다. 재생성 시 원문의 현대 "} {"timestamp": "2026-08-28T03:56:09.773894+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L01 [awkward_translation]: 'cramped and narrow'는 동일한 공간 특성을 중복해서 표현해 번역이 다소 부자연스럽습니다. 재생성 시 원문의 좁고 빽빽한 작업 공"} {"timestamp": "2026-08-28T03:56:09.773958+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P01 [awkward_translation]: 시대 배경을 나타내는 'contemporary modern era'가 의미상 중복되어 어색합니다. 재생성 시 원문의 현대적 배경을 자연스럽고 간"} {"timestamp": "2026-08-28T03:56:09.774028+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review: v1 이라 씬 갈래를 건너뛴다 (그 산문은 이미지에 안 쓰인다)"} {"timestamp": "2026-08-28T03:56:09.774095+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review v1: entity 4 diagnostics, scene 0 diagnostics (mutation=0)"} {"timestamp": "2026-08-28T03:56:09.786933+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:56:09.787329+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step t2i_review: completed"} {"timestamp": "2026-08-28T03:56:09.801807+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor started (run_id=7d02eb15-252a-4738-b692-b5fe1f7664ac, model=gpt)"} {"timestamp": "2026-08-28T03:56:09.816426+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:56:09.816574+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step zoom_continuity_anchor: completed"} {"timestamp": "2026-08-28T03:56:09.831546+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout started (run_id=d80ec612-e46b-48e9-8de9-2b807953c14f, model=gpt)"} {"timestamp": "2026-08-28T03:56:09.845931+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:56:09.846055+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_site_layout: completed"} {"timestamp": "2026-08-28T03:56:09.856682+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec started (run_id=e22071be-02c5-48f9-b727-969718260b92, model=gpt)"} {"timestamp": "2026-08-28T03:56:09.861374+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'outdoor_place_spec': OpenAI strict 비호환 스키마(Gemini 팩 유래) — strict=False 강등, 준수는 local validation+retry 가 보증 (process 당 1회 로그)"} 12:56:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:56:09.865013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:56:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:56:43.289350+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:56:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:56:43.293106+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:56:43.319122+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:56:43.319233+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_place_spec: completed"} {"timestamp": "2026-08-28T03:56:43.324819+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_lane_plan started (run_id=135dc75f-da03-451b-a117-0368cbbd8398, model=gpt)"} 12:56:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:56:43.328699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:56:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:56:51.003478+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:56:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:56:51.009158+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:56:51.033468+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_lane_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:56:51.033674+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_lane_plan: completed"} {"timestamp": "2026-08-28T03:56:51.038725+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon started (run_id=5662d96b-c4a0-49c0-9185-5d6a7ac22d59, model=gpt)"} {"timestamp": "2026-08-28T03:56:51.042674+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_canon_step", "message": "outdoor_place_canon: lane 필터 후 map_marker 그룹 0 — no-op (structure_plate 전용)"} {"timestamp": "2026-08-28T03:56:51.047296+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:56:51.047818+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_place_canon: completed"} {"timestamp": "2026-08-28T03:56:51.053549+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_frame_mode: not_applicable"} {"timestamp": "2026-08-28T03:56:51.057585+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_shot_grounding: not_applicable"} {"timestamp": "2026-08-28T03:56:51.061844+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_ref_classify started (run_id=fd1da454-ed5c-4743-886b-2372228b6464, model=gpt)"} 12:56:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:56:51.066551+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:56:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:56:57.622357+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:56:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:56:57.625712+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:56:57 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:56:57.642321+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:57:23 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:57:23.219556+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:57:23 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:57:23.224735+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:57:23 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:57:23.242313+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:57:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:57:31.663497+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:57:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:57:31.666797+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:57:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:57:31.684154+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:57:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:57:47.394610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:57:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:57:47.399244+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:57:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:57:47.418042+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:57:52 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:57:52.352233+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:57:52 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:57:52.354353+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:57:52.374150+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_ref_classify completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T03:57:52.374484+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_ref_classify: completed"} {"timestamp": "2026-08-28T03:57:52.388613+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_share_plan started (run_id=789d185a-be36-458c-ab38-2766305553c6, model=gpt)"} {"timestamp": "2026-08-28T03:57:52.393343+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'background_share_plan': OpenAI strict 비호환 스키마(Gemini 팩 유래) — strict=False 강등, 준수는 local validation+retry 가 보증 (process 당 1회 로그)"} 12:57:52 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:57:52.399456+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:58:16 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:58:16.749074+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:58:16 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:58:16.750616+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:58:16.771034+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[background_share_plan] Tier 1 failed (Local schema validation failed for step=background_share_plan schema=background_share_plan at path=shot_plans/S3sh3: Additional properties are not allowed ('group_key' was unexpected)), trying sanitized input"} 12:58:16 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:58:16.781307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:58:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:58:32.506265+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:58:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:58:32.509527+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:58:32.520118+00:00", "level": "WARNING", "logger": "app.modules.llm.llm_client", "message": "call_structured[background_share_plan] Tier 2 sanitized failed (Local schema validation failed for step=background_share_plan schema=background_share_plan at path=shot_plans/S3sh3: Additional properties are not allowed ('group_key' was unexpected)), trying GPT fallback"} 12:58:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:58:32.527733+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:58:45 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:58:45.903015+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:58:45 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:58:45.906113+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:58:45.924067+00:00", "level": "INFO", "logger": "app.core.steps.background_share_plan_step", "message": "background_share_plan: 그룹 2 · 샷 6 (attempts=1)"} {"timestamp": "2026-08-28T03:58:45.932978+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_share_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T03:58:45.933130+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_share_plan: completed"} {"timestamp": "2026-08-28T03:58:45.945848+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_continuity started (run_id=766aac37-27fe-46c4-8e67-0b480089c4e0, model=gpt)"} 12:58:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:58:45.957539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:58:55 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:58:55.745877+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:58:55 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:58:55.748685+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:58:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:58:55.764945+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:59:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:59:47.620626+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:59:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:59:47.624320+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:59:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:59:47.644312+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:59:48 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:59:48.970245+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:59:48 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:59:48.973711+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:59:48 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:59:48.987127+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:59:50 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:59:50.638312+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:59:50 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:59:50.641422+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 12:59:50 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:59:50.659666+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 12:59:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T03:59:57.854325+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 12:59:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T03:59:57.859508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T03:59:57.878823+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_continuity completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T03:59:57.879146+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_continuity: completed"} {"timestamp": "2026-08-28T03:59:57.904073+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_form_reference started (run_id=35898179-8741-4313-be5d-915f50fbf48d, model=gpt)"} {"timestamp": "2026-08-28T03:59:57.906056+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_structure_form_reference_step", "message": "outdoor_structure_form_reference: 야외 그룹 없음 — no-op"} {"timestamp": "2026-08-28T03:59:57.916168+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_form_reference completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:59:57.916452+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_structure_form_reference: completed"} {"timestamp": "2026-08-28T03:59:57.943282+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_seed started (run_id=4e3e722b-00ef-41e5-a01d-b5b328a8fdec, model=gemini-image)"} {"timestamp": "2026-08-28T03:59:57.944337+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_structure_seed_step", "message": "outdoor_structure_seed: structure_plate 그룹 없음 — no-op"} {"timestamp": "2026-08-28T03:59:57.962533+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_seed completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T03:59:57.962778+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_structure_seed: completed"} {"timestamp": "2026-08-28T03:59:57.976367+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide started (run_id=78f53bd3-5cff-4a38-b998-f27a76c3f5e1, model=gpt)"} 12:59:58 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T03:59:58.008447+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 13:00:40 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:00:40.151521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:00:40 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T04:00:40.154704+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:00:40.181251+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T04:00:40.181457+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step world_guide: completed"} {"timestamp": "2026-08-28T04:00:40.189985+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step space_set_bg: not_applicable"} {"timestamp": "2026-08-28T04:00:40.197712+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen started (run_id=39477491-a4ca-44a8-abdb-b6a9b7f86830, model=gemini-image)"} {"timestamp": "2026-08-28T04:00:40.215149+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T04:00:40.240133+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T04:00:40.242276+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T04:00:40.256146+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T04:00:40.261896+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T04:00:40.264072+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} 13:00:40 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T04:00:40.289527+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 13:01:15 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:15.330962+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:15 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T04:01:15.332337+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:01:15.368652+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 연희 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-28T04:01:15.368768+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민수 (character, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-28T04:01:15.368824+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 노인 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-28T04:01:15.368867+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-08-28T04:01:15.385866+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 노인 (type=character)"} {"timestamp": "2026-08-28T04:01:15.386050+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민수 (type=character)"} {"timestamp": "2026-08-28T04:01:15.386198+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 연희 (type=character)"} {"timestamp": "2026-08-28T04:01:15.386608+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민수 (character)"} {"timestamp": "2026-08-28T04:01:15.386973+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 노인 (character)"} {"timestamp": "2026-08-28T04:01:15.387179+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 연희 (character)"} {"timestamp": "2026-08-28T04:01:25.820455+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (611200 → 1254090 bytes) [gemini-3.1-flash-image/ref_image_gen_phase1]"} 13:01:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:01:25.905410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:01:25 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:01:25.915705+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T04:01:26.458236+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (670688 → 1365571 bytes) [gemini-3.1-flash-image/ref_image_gen_phase1]"} 13:01:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:01:26.543592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:01:26 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:01:26.554122+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T04:01:27.404687+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (630681 → 1251345 bytes) [gemini-3.1-flash-image/ref_image_gen_phase1]"} 13:01:27 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:01:27.486913+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:01:27 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:01:27.497021+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 13:01:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:31.772185+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:01:31.777045+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:01:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:01:31.844746+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:01:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:36.573803+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:01:36.574903+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:01:36 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:01:36.627125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:01:37 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:37.285277+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:37 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:01:37.286959+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:01:37 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:01:37.360489+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:01:42 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:42.710986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:42 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:01:42.712508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} 13:01:45 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:45.043893+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:45 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:01:45.045686+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} 13:01:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:47.126899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:01:47.128848+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:01:47.237480+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen completed (completed=4/9, failed=0)"} {"timestamp": "2026-08-28T04:01:47.237597+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step ref_image_gen: completed"} {"timestamp": "2026-08-28T04:01:47.246655+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen started (run_id=1efb39ae-9151-4c42-be21-cf2b015bbc4e, model=gemini-image)"} {"timestamp": "2026-08-28T04:01:47.257583+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T04:01:47.267945+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T04:01:47.269529+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T04:01:47.285883+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T04:01:47.290290+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T04:01:47.291733+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} {"timestamp": "2026-08-28T04:01:47.315597+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: reference — 3 completed, 0 failed"} {"timestamp": "2026-08-28T04:01:47.319528+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 연희 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-28T04:01:47.319609+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민수 (character, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-28T04:01:47.319641+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 노인 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-28T04:01:47.319664+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-08-28T04:01:47.329475+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Generating 3 standalone outfit images (parallel)"} 13:01:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T04:01:47.334216+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 13:01:50 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:50.427073+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:50 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T04:01:50.429656+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 13:01:50 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T04:01:50.443787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 13:01:54 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:01:54.453974+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:01:54 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T04:01:54.458250+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 13:01:54 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T04:01:54.473674+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 13:02:05 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:05.233606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:05 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T04:02:05.235640+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:02:05.244183+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 회색외투 (type=outlook)"} {"timestamp": "2026-08-28T04:02:05.244612+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 노란우비 (type=outlook)"} {"timestamp": "2026-08-28T04:02:05.244754+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 남색작업복 (type=outlook)"} {"timestamp": "2026-08-28T04:02:05.245125+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 회색외투 (outlook)"} {"timestamp": "2026-08-28T04:02:05.246255+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 남색작업복 (outlook)"} {"timestamp": "2026-08-28T04:02:05.246748+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 노란우비 (outlook)"} {"timestamp": "2026-08-28T04:02:16.966108+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (515711 → 1033280 bytes) [gemini-3.1-flash-image/ref_image_gen_phase2_outlook]"} {"timestamp": "2026-08-28T04:02:17.044536+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (489485 → 973234 bytes) [gemini-3.1-flash-image/ref_image_gen_phase2_outlook]"} 13:02:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:02:17.057224+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:02:17 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:02:17.065525+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 13:02:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:02:17.137502+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:02:17 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:02:17.145083+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T04:02:17.188691+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (533343 → 1072515 bytes) [gemini-3.1-flash-image/ref_image_gen_phase2_outlook]"} 13:02:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:02:17.270558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:02:17 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:02:17.278891+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 13:02:21 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:21.346620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:21 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:02:21.351018+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:02:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:02:21.413342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:02:22 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:22.130910+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:22 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:02:22.131949+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:02:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:02:22.199084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:02:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:25.713276+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:02:25.714259+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:02:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:02:25.760776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:02:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:32.412535+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:02:32.415255+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:02:32.477365+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 남색작업복"} 13:02:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:34.133814+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:02:34.135747+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:02:34.145745+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 회색외투"} 13:02:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:34.792727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:02:34.793999+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:02:34.856617+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 노란우비"} {"timestamp": "2026-08-28T04:02:35.007983+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Generating 3 composite images (face + outfit refs)"} {"timestamp": "2026-08-28T04:02:35.008691+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 연희 (노란우비) (type=composite)"} {"timestamp": "2026-08-28T04:02:35.008800+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 노인 (회색외투) (type=composite)"} {"timestamp": "2026-08-28T04:02:35.008899+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민수 (남색작업복) (type=composite)"} {"timestamp": "2026-08-28T04:02:35.009060+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 연희 (노란우비) (composite)"} {"timestamp": "2026-08-28T04:02:35.019407+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민수 (남색작업복) (composite)"} {"timestamp": "2026-08-28T04:02:35.029913+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 노인 (회색외투) (composite)"} {"timestamp": "2026-08-28T04:02:45.565093+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (458300 → 1013989 bytes) [gemini-3.1-flash-image/ref_image_gen_composite]"} 13:02:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:02:45.651978+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:02:45 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:02:45.660231+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T04:02:47.071515+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (455361 → 1018863 bytes) [gemini-3.1-flash-image/ref_image_gen_composite]"} 13:02:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:02:47.162032+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:02:47 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:02:47.170132+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T04:02:49.301847+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (423172 → 929401 bytes) [gemini-3.1-flash-image/ref_image_gen_composite]"} 13:02:49 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:02:49.387416+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:02:49 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:02:49.394655+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 13:02:50 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:50.254660+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:50 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:02:50.258438+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:02:50 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:02:50.326269+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:02:50 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:50.955278+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:50 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:02:50.956572+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:02:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:02:51.001539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:02:54 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:54.453812+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:54 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:02:54.470823+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:02:54 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:02:54.504659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:02:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:02:59.470462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:02:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:02:59.472031+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:02:59.528051+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 노인 + 회색외투"} 13:03:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:03:01.508765+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:03:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:03:01.512528+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:03:01.566307+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 연희 + 노란우비"} 13:03:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:03:04.264798+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:03:04 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:03:04.268123+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:03:04.331429+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 민수 + 남색작업복"} {"timestamp": "2026-08-28T04:03:04.369577+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T04:03:04.369689+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step composite_image_gen: completed"} {"timestamp": "2026-08-28T04:03:04.377980+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant started (run_id=979b235e-66ca-4a5b-8bd6-b7639d81c7c5, model=gemini-image)"} {"timestamp": "2026-08-28T04:03:04.378475+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 1 characters with state variants: ['노인']"} {"timestamp": "2026-08-28T04:03:04.391850+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 노인 (unconscious) (type=character_state_variant)"} {"timestamp": "2026-08-28T04:03:14.930661+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (717370 → 1501000 bytes) [gemini-3.1-flash-image/character_state_variant]"} 13:03:15 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:03:15.019964+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:03:15 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T04:03:15.031508+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 13:03:19 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:03:19.501262+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:03:19 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:03:19.503742+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:03:19 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:03:19.556299+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:03:26 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:03:26.600283+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:03:26 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:03:26.603011+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:03:26.655889+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 노인 (unconscious) — generated"} {"timestamp": "2026-08-28T04:03:26.675700+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T04:03:26.675791+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step character_state_variant: completed"} {"timestamp": "2026-08-28T04:03:26.681366+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render started (run_id=d4f3de52-533f-4a3a-ba61-eb0e9af4c59e, model=gpt)"} {"timestamp": "2026-08-28T04:03:26.683905+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place 그룹 멤버십 2 loc — {'L01': 'bg_bicycle_repair_shop', 'L02': 'bg_wet_alley_intersection'}"} {"timestamp": "2026-08-28T04:05:01.000748+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L01 anchor=L01B01"} {"timestamp": "2026-08-28T04:06:26.381715+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: registered 2 ImageAssets (chain_bg + 0 location_aerial) (star anchor lineage: 1)"} {"timestamp": "2026-08-28T04:06:26.396932+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-28T04:06:26.397049+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_render: completed"} {"timestamp": "2026-08-28T04:06:26.414309+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_conti_light started (run_id=e58a0715-b6ca-4083-a472-94b8d4b5c7c6, model=gpt-image-2)"} {"timestamp": "2026-08-28T04:06:26.436016+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh3]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['민수'] (배정=['C02'])"} {"timestamp": "2026-08-28T04:07:51.575416+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S2sh3]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['민수'] (배정=['C02', 'C03'])"} {"timestamp": "2026-08-28T04:09:11.840221+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh2]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01', 'C03'])"} {"timestamp": "2026-08-28T04:10:38.172911+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_conti_light completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T04:10:38.173234+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_conti_light: completed"} {"timestamp": "2026-08-28T04:10:38.194442+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline started (run_id=67b04f06-51d0-4b67-9951-5aff12270589, model=mixed)"} {"timestamp": "2026-08-28T04:10:38.231324+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T04:10:38.252118+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T04:10:38.254129+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T04:10:38.277301+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T04:10:38.284467+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T04:10:38.289805+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} {"timestamp": "2026-08-28T04:10:38.358295+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T04:10:38.384274+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T04:10:38.387480+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T04:10:38.409190+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T04:10:38.417752+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T04:10:38.422082+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} {"timestamp": "2026-08-28T04:10:38.485578+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=3e83f3ee: expected=7 registered=7 disk=7 missing=0"} 13:10:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T04:10:38.532862+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 13:11:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:11:38.885202+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:11:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T04:11:38.886713+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:11:38.897404+00:00", "level": "INFO", "logger": "app.modules.provenance", "message": "Operation logged: type=image_generation, module=world_guide_generator, status=success, duration=60375ms"} {"timestamp": "2026-08-28T04:11:38.921281+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 6 existing reference images for 9 entities"} {"timestamp": "2026-08-28T04:11:38.921413+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-08-28T04:11:38.939320+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-28T04:11:38.939732+00:00", "level": "WARNING", "logger": "app.services.still_recipe_service", "message": "still_recipe: 운영자 선언 무콘티 예외 2샷 — BGFIRST 대상 제외 후 기존 경로 생성: ['S11sh1', 'S75sh7']"} {"timestamp": "2026-08-28T04:11:38.960274+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh3]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['민수'] (배정=['C02'])"} 13:11:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T04:11:38.965581+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 13:11:41 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:11:41.257169+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:11:41 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T04:11:41.258254+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 13:11:41 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T04:11:41.273342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 13:11:45 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:11:45.362946+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:11:45 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T04:11:45.366586+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:13:30.812354+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (693158 → 1444049 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T04:13:36.140953+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (657014 → 1421013 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 13:13:36 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:13:36.157156+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:14:19 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:14:19.809371+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:14:19 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:14:19.811301+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:15:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:15:51.666601+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:16:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:16:46.673064+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:16:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:16:46.675251+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:17:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:17:55.350084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:18:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:18:14.897137+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:18:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:18:14.947220+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:20:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:20:20.061130+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:20:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:20:38.973483+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:20:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:20:38.974583+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:20:53.406025+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (289133 → 1131846 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 13:20:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:20:53.424204+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:21:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:21:35.821823+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:21:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:21:35.825358+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:23:08 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:23:08.151033+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:23:48 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:23:48.547953+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:23:48 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:23:48.551283+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:26:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:26:35.413833+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:26:40 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:26:40.021937+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:26:40 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:26:40.024144+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:26:40 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:26:40.062097+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:26:50 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:26:50.884042+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:26:50 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:26:50.886732+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:26:50.964081+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh3: 완료 (selected=A, fix=True)"} {"timestamp": "2026-08-28T04:26:50.964495+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh5: share_plan prev 지휘(배경 전용) — 플레이트 대신 prev 참조 (anchor=S1sh3)"} 13:26:50 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:26:50.971050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:26:56 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:26:56.338738+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:26:56 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:26:56.341362+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:26:56.352482+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh5: confined fp 판별 제외 — 이 숏은 자전거 수리점의 작업대 주변을 배경으로 하며, 조종석이나 차량 내부처럼 좌석과 제어 장치의 위치 배치가 엄격하게 중요한 밀폐 공간이 아"} 13:26:56 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T04:26:56.362154+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 13:27:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:27:01.258198+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:27:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T04:27:01.261389+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:27:14.489998+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (635328 → 1391583 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T04:27:26.882925+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (677503 → 1499929 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 13:27:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:27:26.898697+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:28:24 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:28:24.109574+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:28:24 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:28:24.117617+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:30:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:30:28.518755+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:30:55 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:30:55.936182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:30:55 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:30:55.941727+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:31:56 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:31:56.568344+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:32:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:32:34.815056+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:32:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:32:34.820972+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:32:47.186171+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (305380 → 1209635 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 13:32:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:32:47.201023+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:33:40 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:33:40.099967+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:33:40 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:33:40.134979+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:35:42 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:35:42.751478+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:36:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:36:32.073405+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:36:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:36:32.077187+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:37:54.620120+00:00", "level": "WARNING", "logger": "app.modules.pipeline.multiroll_select", "message": "multiroll_select[still_S1sh5]: fix-rejudge — 수정본 개악 판정, 선정 원본(B) 유지"} 13:39:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:39:01.743030+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:39:06 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:39:06.856170+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:39:06 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:39:06.859048+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:39:06 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T04:39:06.873895+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 13:39:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:39:35.679748+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:39:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T04:39:35.683397+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:39:35.762036+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh5: 완료 (selected=B, fix=True)"} {"timestamp": "2026-08-28T04:39:35.766240+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S2sh3]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['민수'] (배정=['C02', 'C03'])"} 13:39:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T04:39:35.772691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 13:39:42 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:39:42.958684+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:39:42 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T04:39:42.961095+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 13:39:42 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T04:39:42.986903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 13:39:47 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:39:47.169948+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:39:47 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T04:39:47.172939+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:42:51.760501+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (783356 → 1661486 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T04:42:51.768040+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (817744 → 1780915 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 13:42:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:42:51.788539+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:43:23 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:43:23.106038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:43:23 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:43:23.109362+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:44:58 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:44:58.910842+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:45:33 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:45:33.909952+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:45:33 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:45:33.915897+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:46:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:46:38.079182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:47:07 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:47:07.112907+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:47:07 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:47:07.117291+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:49:50 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:49:50.804034+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:50:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:50:31.006724+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:50:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:50:31.010006+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T04:50:51.636770+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (395344 → 1499864 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 13:50:51 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:50:51.659731+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:51:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:51:34.730749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:51:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:51:34.731754+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 13:56:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T04:56:29.849168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 13:57:02 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T04:57:02.634202+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 13:57:02 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T04:57:02.640553+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:02:50 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:02:50.669258+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:02:56 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:02:56.071156+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:02:56 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:02:56.073541+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:02:56 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T05:02:56.114812+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 14:03:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:03:14.717888+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:03:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T05:03:14.722438+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:03:14.798831+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh3: 완료 (selected=A, fix=True)"} {"timestamp": "2026-08-28T05:03:14.801574+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh5: 노인(C03) pose-locked by prev S2sh3 — 캐릭터 참조 제외"} {"timestamp": "2026-08-28T05:03:14.801798+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S2sh5]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01', 'C03'])"} 14:03:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T05:03:14.807787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 14:03:16 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:03:16.761466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:03:16 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T05:03:16.763458+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:03:28.228241+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (777311 → 1660191 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T05:03:40.815855+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (780881 → 1668832 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 14:03:40 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:03:40.831613+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:04:30 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:04:30.997639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:04:30 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:04:30.999464+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:05:53.659909+00:00", "level": "WARNING", "logger": "app.modules.pipeline.multiroll_select", "message": "multiroll_select[still_S2sh5]: 심판이 초기 롤 전부 실패를 선언 — 선정본(B)은 least-bad 다"} 14:05:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:05:53.677566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:09:07 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:09:07.815549+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:09:07 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:09:07.817327+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:10:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:10:53.903287+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:11:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:11:25.274683+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:11:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:11:25.281164+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:11:45.134786+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (354231 → 1342783 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 14:11:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:11:45.151090+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:12:23 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:12:23.786816+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:12:23 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:12:23.791561+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:13:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:13:46.928356+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:14:19 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:14:19.939509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:14:19 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:14:19.940944+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:16:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:16:46.734381+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:17:12 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:17:12.141802+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:17:12 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:17:12.144180+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:17:12 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T05:17:12.178807+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 14:17:28 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:17:28.433851+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:17:28 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T05:17:28.438217+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:17:28.505738+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh5: 완료 (selected=B, fix=True)"} {"timestamp": "2026-08-28T05:17:28.511067+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh2]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01', 'C03'])"} 14:17:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T05:17:28.515031+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 14:17:30 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:17:30.081153+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:17:30 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T05:17:30.084834+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:19:32.610816+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (702205 → 1443889 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T05:19:34.168174+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (729596 → 1483883 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 14:19:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:19:34.187413+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:20:18 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:20:18.865173+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:20:18 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:20:18.868070+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:22:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:22:21.602297+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:23:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:23:32.871173+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:23:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:23:32.875713+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:25:18 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:25:18.781101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:26:08 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:26:08.284155+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:26:08 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:26:08.285635+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:28:07 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:28:07.321251+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:28:27 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:28:27.390486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:28:27 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:28:27.394925+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:30:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:30:01.547779+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:30:09 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:30:09.943800+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:30:09 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:30:09.946921+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:30:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T05:30:09.995830+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 14:30:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:30:25.545723+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:30:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T05:30:25.546464+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:30:25.611037+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh2: 완료 (selected=A, fix=False)"} {"timestamp": "2026-08-28T05:30:25.613268+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh3]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['노인', '민수'] (배정=['C02'])"} 14:30:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T05:30:25.617307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 14:30:28 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:30:28.318670+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:30:28 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T05:30:28.322114+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:30:40.271539+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (577050 → 1253658 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T05:30:52.116305+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (614070 → 1288018 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 14:30:52 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:30:52.131716+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:32:12 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:32:12.728441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:32:12 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:32:12.735570+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:34:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:34:09.834094+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:35:00 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:35:00.858194+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:35:00 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:35:00.861738+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:37:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:37:09.064120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:37:44 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:37:44.892669+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:37:44 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:37:44.893846+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:37:55.738817+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (260459 → 929486 bytes) [x-ai/grok-imagine-image-2.0/still_recipe_roll]"} 14:37:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:37:55.754099+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:38:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:38:20.260928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:38:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:38:20.266994+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:40:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:40:26.436664+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:41:00 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:41:00.287627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:41:00 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:41:00.290010+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:44:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T05:44:35.062414+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 14:44:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:44:46.359963+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:44:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T05:44:46.362452+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 14:44:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T05:44:46.377986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 14:44:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T05:44:57.309651+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 14:44:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T05:44:57.311842+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T05:44:57.377183+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh3: 완료 (selected=B, fix=True)"} {"timestamp": "2026-08-28T05:44:57.383255+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "still_recipe v1: 6/6 샷 생성 완료 (episode=3e83f3ee-ded7-4f2a-aded-01584d6ea5c5)"} {"timestamp": "2026-08-28T05:44:57.399619+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T05:44:57.399704+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_image_pipeline: completed"} {"timestamp": "2026-08-28T05:44:57.409057+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 6 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T05:44:57.416850+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 17 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T05:44:57.417993+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T05:44:57.427503+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T05:44:57.430880+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T05:44:57.432191+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 3e83f3ee, step=-, repaired=0)"} INFO: 127.0.0.1:55038 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:55948 - "GET /api/v1/health HTTP/1.1" 200 OK ===== 재기동 2026-08-29 03:23:09 ===== INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [85429] /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 [72376] INFO: Waiting for application startup. {"timestamp": "2026-08-28T18:23:21.009936+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} {"timestamp": "2026-08-28T18:23:21.223302+00:00", "level": "INFO", "logger": "app.core.step_lock", "message": "스텝 락 하트비트 시작 (간격=30s, boot_id=4d855ee4)"} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-08-28T18:23:30.598722+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 2 key(s) loaded"} INFO: 127.0.0.1:55964 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:55969 - "GET /openapi.json HTTP/1.1" 404 Not Found INFO: 127.0.0.1:55974 - "GET /openapi.json HTTP/1.1" 404 Not Found INFO: 127.0.0.1:55978 - "GET /api/openapi.json HTTP/1.1" 200 OK INFO: 127.0.0.1:55981 - "POST /api/v1/projects/ HTTP/1.1" 401 Unauthorized INFO: 127.0.0.1:55983 - "POST /api/v1/projects//episodes/ HTTP/1.1" 404 Not Found INFO: 127.0.0.1:55986 - "POST /api/v1/projects/ HTTP/1.1" 401 Unauthorized INFO: 127.0.0.1:55996 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:55998 - "GET /api/v1/auth/me HTTP/1.1" 200 OK {"timestamp": "2026-08-28T18:25:09.903597+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik usage 에 캐시 항목 기록 켬 (create_usage_object 래핑)"} {"timestamp": "2026-08-28T18:25:09.903675+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab, url: http://192.168.133.87:5173/api, cache_wiring=ok)"} 03:25:09 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-28T18:25:09.908923+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-28T18:25:09.909091+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 17 deployments (2 Gemini keys, OpenAI=True slot=primary/2)"} 03:25:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:25:09.930766+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:25:11 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T18:25:11.790794+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 03:25:17 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:25:17.262307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:25:17 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T18:25:17.485262+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 03:25:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:25:22.539014+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:25:23 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T18:25:23.244680+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 03:25:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:25:28.763871+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:25:29 - LiteLLM Router:INFO: router.py:1154 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-28T18:25:29.262433+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 03:25:34 - LiteLLM Router:INFO: router.py:4027 - Trying to fallback b/w models {"timestamp": "2026-08-28T18:25:34.318658+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-28T18:25:34.319274+00:00", "level": "WARNING", "logger": "app.core.openai_keys", "message": "OpenAI 키 전환: primary → secondary (사유=429 · 지점=router.completion[gpt]). 이 프로세스는 이후 secondary 슬롯을 쓴다."} {"timestamp": "2026-08-28T18:25:34.319421+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router 무효화 — OpenAI 키 슬롯 전환 반영"} 03:25:34 - LiteLLM Router:INFO: router.py:707 - Routing strategy: simple-shuffle {"timestamp": "2026-08-28T18:25:34.329662+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-28T18:25:34.329896+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 17 deployments (2 Gemini keys, OpenAI=True slot=secondary/2)"} 03:25:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:25:34.330752+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:25:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:25:38.125131+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:25:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:25:38.125914+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a91d2a-2206-73be-8000-406623ce5540&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. INFO: 127.0.0.1:56001 - "POST /api/v1/projects/ HTTP/1.1" 200 OK INFO: 127.0.0.1:56014 - "POST /api/v1/projects/dd5dd235-5850-4157-9b90-a733760c5ae8/episodes/ HTTP/1.1" 200 OK {"timestamp": "2026-08-28T18:25:58.034854+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: run_all:dd5dd235-5850-4157-9b90-a733760c5ae8:0b36f6db-9884-4206-8fb4-ff11cc3c2392:all (Run all all steps for 0b36f6db-9884-4206-8fb4-ff11cc3c2392)"} INFO: 127.0.0.1:56021 - "POST /api/v1/projects/dd5dd235-5850-4157-9b90-a733760c5ae8/episodes/0b36f6db-9884-4206-8fb4-ff11cc3c2392/steps/run-all?mode=resume&category=all&approve_image_generation=true&image_call_cap=200 HTTP/1.1" 200 OK {"timestamp": "2026-08-28T18:25:58.042446+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=b01e0b4d-15ab-4775-a43c-39817feac84d, model=gemini-lite)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=06a91d2b-60ae-743a-87c6-21b6b2a309f1&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-28T18:25:58.055619+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 골목끝.pdf (15407174 bytes, 2 pages) → model=gemini-lite"} 03:25:58 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:25:58.094879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:26:07 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:26:07.477915+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:07 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:26:07.481702+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:26:07.711780+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: extracted 898 chars from 골목끝.pdf (finish_reason=stop)"} {"timestamp": "2026-08-28T18:26:07.752315+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:26:07.752683+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step text_cleanup: completed"} {"timestamp": "2026-08-28T18:26:07.758487+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation started (run_id=543eafbd-0501-4ed3-9b81-ee047d31d8ac, model=gemini-flash)"} 03:26:07 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:26:07.773884+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:26:10 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:26:10.561379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:10 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:26:10.563504+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:26:10.567418+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "scene_segmentation 1회차: 후보 2개 · 통과 2개"} {"timestamp": "2026-08-28T18:26:10.567527+00:00", "level": "INFO", "logger": "app.core.steps.scene_steps", "message": "scene_segmentation 확정: ^#(\\d+)\\.\\s+.* · 3개 · 헤딩 내용 1.00"} {"timestamp": "2026-08-28T18:26:10.572732+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_segmentation completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:26:10.572807+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_segmentation: completed"} {"timestamp": "2026-08-28T18:26:10.576512+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary started (run_id=27e23813-1e13-48bb-8529-2be44b8c9098, model=gpt-mini)"} 03:26:10 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:26:10.579595+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:26:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:26:14.834163+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:26:14.837085+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:26:14.854923+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_summary completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:26:14.855110+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_summary: completed"} {"timestamp": "2026-08-28T18:26:14.861083+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules started (run_id=87d8e373-d700-4954-986a-e34559ae6ba5, model=gpt)"} 03:26:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:26:14.869579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:26:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:26:31.091053+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:26:31.092073+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:26:31.094554+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "VisualWorldRulesStep: 3 rules, era=동시대 현대, region=대한민국의 도시 주거 지역, planning_doc=False"} {"timestamp": "2026-08-28T18:26:31.099372+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_world_rules completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:26:31.099460+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_world_rules: completed"} {"timestamp": "2026-08-28T18:26:31.103888+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save started (run_id=f5fddb61-9ff3-4cd1-bd1b-fbcfdd3d72cf, model=-)"} {"timestamp": "2026-08-28T18:26:31.107737+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_save completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:26:31.107796+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_save: completed"} {"timestamp": "2026-08-28T18:26:31.111624+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list started (run_id=8dd7b5b7-5816-43c4-9911-6f7c2f27ceac, model=gpt)"} 03:26:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:26:31.115643+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:26:33 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:26:33.790573+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:33 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:26:33.793919+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:26:33.799992+00:00", "level": "INFO", "logger": "app.core.steps.character_list_step", "message": "entity_character_list: 3 characters extracted"} {"timestamp": "2026-08-28T18:26:33.806332+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_character_list completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:26:33.806634+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_character_list: completed"} {"timestamp": "2026-08-28T18:26:33.815578+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary started (run_id=af82102e-f4e5-450a-8c3e-ca9ebc1ff1cd, model=gpt-mini)"} 03:26:33 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:26:33.830186+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:26:33 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:26:33.831789+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:26:33 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:26:33.832543+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:26:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:26:36.403155+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:26:36.405420+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 03:26:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:26:38.458844+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:26:38.461513+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 03:26:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:26:38.971940+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:26:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:26:38.973035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:26:38.974412+00:00", "level": "INFO", "logger": "app.core.steps.summary_steps", "message": "SceneSummaryStep: 3/3 scenes summarized (0 failed)"} {"timestamp": "2026-08-28T18:26:38.979542+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_summary completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:26:38.979602+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_summary: completed"} {"timestamp": "2026-08-28T18:26:38.984590+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract started (run_id=f3751d9c-7d45-4bf0-982e-5e0fabeea12b, model=gemini-pro)"} {"timestamp": "2026-08-28T18:26:38.985251+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 characters injected"} {"timestamp": "2026-08-28T18:26:38.987325+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 scenes → 1 bundles"} {"timestamp": "2026-08-28T18:26:38.987617+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'beat_extract_1': Gemini 는 문자열 enum 만 받는다 — integer 형 enum 1개 걷음. 계약은 호출부 검증·재시도가 지킨다 (process 당 1회 로그)"} 03:26:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:26:38.988569+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:02 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:27:02.816726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:02 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:27:02.819824+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:27:02.836036+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract call 1 (scenes 1~3): 3 scenes, 6 beats"} {"timestamp": "2026-08-28T18:27:02.836397+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "beat_extract: 3 scenes, 6 beats"} {"timestamp": "2026-08-28T18:27:02.843933+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step beat_extract completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:27:02.844112+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step beat_extract: completed"} {"timestamp": "2026-08-28T18:27:02.849570+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract started (run_id=f789b788-2926-42fd-bbcc-049c0e44485f, model=gemini-pro)"} {"timestamp": "2026-08-28T18:27:02.850973+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: t2i_context injected (432 chars)"} {"timestamp": "2026-08-28T18:27:02.851226+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 3 characters injected as enum"} {"timestamp": "2026-08-28T18:27:02.855174+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=shot_extract stem=shot_schema.json loaded_from=10.202604151200 (latest_in_module=17.202607222348). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} {"timestamp": "2026-08-28T18:27:02.856016+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 3 scenes → 1 bundles (sequential)"} {"timestamp": "2026-08-28T18:27:02.857543+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'shot_extract_1': Gemini 는 문자열 enum 만 받는다 — integer 형 enum 1개 걷음. 계약은 호출부 검증·재시도가 지킨다 (process 당 1회 로그)"} 03:27:02 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:27:02.862280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56065 - "GET /api/v1/projects/dd5dd235-5850-4157-9b90-a733760c5ae8/episodes/0b36f6db-9884-4206-8fb4-ff11cc3c2392/progress HTTP/1.1" 200 OK 03:27:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:27:34.468368+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:27:34.472369+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:27:34.484998+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract call 1 (scenes 1~3): 3 scenes, 19 shots"} {"timestamp": "2026-08-28T18:27:34.485225+00:00", "level": "INFO", "logger": "app.core.steps.beat_shot_steps", "message": "shot_extract: 3 scenes, 19 shots"} {"timestamp": "2026-08-28T18:27:34.502546+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_extract completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:27:34.502831+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_extract: completed"} {"timestamp": "2026-08-28T18:27:34.517341+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator started (run_id=83ff334e-454a-4576-b12e-e01fc69d3f32, model=gemini-pro)"} {"timestamp": "2026-08-28T18:27:34.529577+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."} 03:27:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:27:34.531334+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:27:34.532486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:27:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:27:34.533987+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:56071 - "GET /api/v1/projects/dd5dd235-5850-4157-9b90-a733760c5ae8/episodes/0b36f6db-9884-4206-8fb4-ff11cc3c2392/progress HTTP/1.1" 200 OK 03:27:50 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:27:50.898956+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:27:50 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:27:50.901661+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:28:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:01.256749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:28:01.258882+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:01.271210+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 1 shot 1 — dropping malformed/out-of-pool character_ids ['minsu'] (kept [])."} {"timestamp": "2026-08-28T18:28:01.271431+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 1 shot 2 — dropping malformed/out-of-pool character_ids ['yeonhee'] (kept [])."} {"timestamp": "2026-08-28T18:28:01.271520+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 1 shot 3 — dropping malformed/out-of-pool character_ids ['yeonhee'] (kept [])."} {"timestamp": "2026-08-28T18:28:01.271579+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 1 shot 4 — dropping malformed/out-of-pool character_ids ['minsu'] (kept [])."} {"timestamp": "2026-08-28T18:28:01.271631+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 1 shot 5 — dropping malformed/out-of-pool character_ids ['minsu'] (kept [])."} {"timestamp": "2026-08-28T18:28:01.271680+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 1 shot 6 — dropping malformed/out-of-pool character_ids ['minsu'] (kept [])."} {"timestamp": "2026-08-28T18:28:01.271725+00:00", "level": "WARNING", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: scene 1 shot 7 — dropping malformed/out-of-pool character_ids ['minsu'] (kept [])."} 03:28:06 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:06.840777+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:06 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:28:06.842224+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:06.854121+00:00", "level": "INFO", "logger": "app.core.steps.shot_validator_step", "message": "shot_validator: 3 scenes, 19 shots total, 9 revised, 0 failed"} {"timestamp": "2026-08-28T18:28:06.866042+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_validator completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:28:06.866276+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_validator: completed"} {"timestamp": "2026-08-28T18:28:06.888474+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character started (run_id=5fb00c52-fa82-425f-855b-cc8b35835dec, model=gpt)"} 03:28:06 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:28:06.897448+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:28:09 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:09.679028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:09 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:28:09.682957+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:09.691043+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_character (shot-based, 1 call): 3 entities from 19 shots"} {"timestamp": "2026-08-28T18:28:09.702137+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_character completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:28:09.702430+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_character: completed"} {"timestamp": "2026-08-28T18:28:09.721631+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character started (run_id=370e7f07-31a3-40a1-a195-7c20dc3777db, model=gpt)"} 03:28:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:28:09.727069+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:28:21 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:21.127162+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:21 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:28:21.129079+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:21.141848+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_character completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:28:21.142101+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_character: completed"} {"timestamp": "2026-08-28T18:28:21.156055+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location started (run_id=3c4a14c8-c7f7-40ce-bead-710c97cb4c1c, model=gpt)"} 03:28:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:28:21.165769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:28:24 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:24.162024+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:24 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:28:24.164540+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:24.168750+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_location (shot-based, 1 call): 2 entities from 19 shots"} {"timestamp": "2026-08-28T18:28:24.178290+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_location completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-28T18:28:24.178502+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_location: completed"} {"timestamp": "2026-08-28T18:28:24.191360+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location started (run_id=f6a69af0-358d-425a-8617-2d75e3b1b31c, model=gemini-pro)"} 03:28:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:28:24.200648+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:34.733020+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:28:34.735686+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:34.759413+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_location completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-28T18:28:34.759676+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_location: completed"} {"timestamp": "2026-08-28T18:28:34.777294+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop started (run_id=02fdca2d-eb7d-4a8a-9ef5-3dcf4a5155b8, model=gpt)"} 03:28:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:28:34.783404+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:28:42 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:42.630870+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:42 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:28:42.632414+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:42.634867+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_lister", "message": "entity_all_prop (shot-based, 1 call): 5 entities from 19 shots"} {"timestamp": "2026-08-28T18:28:42.645671+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_all_prop completed (completed=5/5, failed=0)"} {"timestamp": "2026-08-28T18:28:42.645851+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_all_prop: completed"} {"timestamp": "2026-08-28T18:28:42.659185+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop started (run_id=4db62498-cb9d-401b-b3cc-e4262aa84343, model=gemini-pro)"} 03:28:42 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:28:42.667735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:28:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:57.691203+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:28:57.694292+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:57.711310+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_extract_prop completed (completed=5/5, failed=0)"} {"timestamp": "2026-08-28T18:28:57.711517+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_extract_prop: completed"} {"timestamp": "2026-08-28T18:28:57.727108+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge started (run_id=4edeb241-7647-41c4-be8e-5b272e4e2f81, model=gpt)"} 03:28:57 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:28:57.735638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:28:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:28:59.214873+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:28:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:28:59.217309+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:28:59.238884+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_merge completed (completed=10/10, failed=0)"} {"timestamp": "2026-08-28T18:28:59.239125+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_merge: completed"} {"timestamp": "2026-08-28T18:28:59.251728+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation started (run_id=f852f0ef-e3cc-4c68-b75c-e1e62a8e6fe2, model=gpt)"} 03:28:59 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:28:59.264774+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:29:00 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:00.295330+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:00 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:29:00.297430+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:29:00.311072+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_relation", "message": "Entity relations: 0 candidates → 0 confirmed (0 visual_similar)"} {"timestamp": "2026-08-28T18:29:00.317988+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_relation completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:29:00.318246+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_relation: completed"} {"timestamp": "2026-08-28T18:29:00.325780+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter started (run_id=09e99bb6-6599-4c00-8a2e-63e081a9b87c, model=gpt-mini)"} 03:29:00 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:29:00.330728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:29:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:01.957492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:29:01.960565+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:29:01.967464+00:00", "level": "INFO", "logger": "app.modules.pipeline.entity_filter", "message": "Filtered 1 low-freq entities → removed 1"} {"timestamp": "2026-08-28T18:29:01.981216+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_filter completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:29:01.981628+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_filter: completed"} {"timestamp": "2026-08-28T18:29:01.995948+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail started (run_id=422e0038-3b70-4f87-ab92-925ca750e5c0, model=gpt)"} 03:29:02 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:29:02.007915+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:29:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:36.181394+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:29:36.183800+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:29:36.209739+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_detail completed (completed=9/9, failed=0)"} {"timestamp": "2026-08-28T18:29:36.209974+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_detail: completed"} {"timestamp": "2026-08-28T18:29:36.224711+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i started (run_id=1c292d16-95b8-4201-b0cb-69fea9a101a2, model=gemini-pro)"} 03:29:36 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:36.231604+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:37 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:37.241676+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:38.250132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:39 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:39.257904+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:40 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:40.261004+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:41 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:41.265275+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:42 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:42.272052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:43.280563+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:29:44.289553+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:29:45 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:45.654876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:45 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:45.656065+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:49 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:49.167867+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:49 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:49.171794+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:49 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:49.992388+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:49 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:49.996286+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:53.099168+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:53.100552+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:53.415225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:53.417678+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:53.616249+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:53.618562+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:53.924949+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:53.928569+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:54 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:54.742302+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:54 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:54.743676+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:29:58 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:29:58.577567+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:29:58 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:29:58.580843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:29:58.613589+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step entity_t2i completed (completed=9/9, failed=0)"} {"timestamp": "2026-08-28T18:29:58.613700+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step entity_t2i: completed"} {"timestamp": "2026-08-28T18:29:58.621570+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection started (run_id=34357199-afae-4013-a590-f9d0f06183dd, model=gpt-mini)"} {"timestamp": "2026-08-28T18:29:58.627047+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 0 scenes auto-selected (1-shot), 3 scenes to evaluate (abs_max=3, ratio_cap=50%)"} 03:29:58 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:29:58.631287+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:29:58 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:29:58.632782+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:29:58 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:29:58.633897+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:30:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:01.375056+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:30:01.377266+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:30:01.380396+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 3: 2/5 selected (eff_max=2)"} 03:30:02 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:02.209167+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:02 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:30:02.213235+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:30:02.221529+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 2: 2/7 selected (eff_max=3)"} 03:30:03 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:03.231848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:03 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:30:03.234619+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:30:03.244296+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection scene 1: 2/7 selected (eff_max=3)"} {"timestamp": "2026-08-28T18:30:03.244835+00:00", "level": "INFO", "logger": "app.core.steps.shot_selection_step", "message": "shot_selection: 6/19 shots selected across 3 scenes"} {"timestamp": "2026-08-28T18:30:03.264585+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_selection completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:30:03.264888+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_selection: completed"} {"timestamp": "2026-08-28T18:30:03.293949+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:30:03.305304+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:30:03.322494+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:30:03.325693+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:30:03.331013+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=9c5f5975-16dd-4ea6-adc5-f8fd9e9a6faa, model=gemini-pro)"} {"timestamp": "2026-08-28T18:30:03.339292+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} 03:30:03 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:30:03.347846+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:30:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:14.275648+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:30:14.278809+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:30:14.298599+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:30:14.298789+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_director: completed"} {"timestamp": "2026-08-28T18:30:14.328826+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:30:14.337634+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:30:14.342758+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:30:14.345369+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=scene_director, repaired=0)"} {"timestamp": "2026-08-28T18:30:14.353059+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director started (run_id=310d0cb6-1e5b-440d-b910-d78130d84b80, model=gpt)"} 03:30:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:30:14.359533+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:30:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:20.711048+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:30:20.712397+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:30:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:30:20.721989+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:30:26 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:26.609737+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:26 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:30:26.613183+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:30:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:30:26.628290+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:30:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:34.396395+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:30:34.404342+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:30:34.411950+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_director", "message": "shot_director: 3 scenes (3 LLM, 0 skipped), 6 total shots"} {"timestamp": "2026-08-28T18:30:34.424595+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:30:34.424843+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_director: completed"} {"timestamp": "2026-08-28T18:30:34.447146+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow started (run_id=453ef3a9-820a-450d-95ac-a1de70f599c4, model=gpt)"} {"timestamp": "2026-08-28T18:30:34.451007+00:00", "level": "WARNING", "logger": "app.modules.prompt_loader", "message": "Prompt version pack drift: module=scene_camera_flow stem=schema.json loaded_from=2.202607080130 (latest_in_module=5.202608130110). To enforce single-pack semantics, set PROMPT_VERSION_PACK_STRICT=true and align stem files within the latest version directory."} 03:30:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:30:34.459751+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:30:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:30:34.460782+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:30:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:30:34.461699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:30:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:51.197693+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:30:51.198624+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:30:51.215506+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S3: 4 stages, 2 shot assignments"} 03:30:54 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:54.078045+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:54 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:30:54.081964+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:30:54.097639+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S2: 4 stages, 2 shot assignments"} 03:30:58 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:30:58.606320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:30:58 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:30:58.607425+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:30:58.617860+00:00", "level": "INFO", "logger": "app.core.steps.scene_camera_flow_step", "message": "scene_camera_flow S1: 4 stages, 2 shot assignments"} {"timestamp": "2026-08-28T18:30:58.625281+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_camera_flow completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:30:58.625355+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_camera_flow: completed"} {"timestamp": "2026-08-28T18:30:58.635093+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency started (run_id=2249765b-dde3-46f5-adbd-e44363a9c6be, model=gpt)"} {"timestamp": "2026-08-28T18:30:58.637961+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_step", "message": "shot_dependency: 4/6 shots linked (code-based scoring)"} {"timestamp": "2026-08-28T18:30:58.642048+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T18:30:58.642194+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency: completed"} {"timestamp": "2026-08-28T18:30:58.668065+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:30:58.673709+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:30:58.678669+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:30:58.681305+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:30:58.686717+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 started (run_id=7480e4f9-7df9-4686-8f81-d47eeaee21a6, model=gemini-pro)"} {"timestamp": "2026-08-28T18:30:58.691329+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1: 3 scenes, 3 characters"} 03:30:58 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:30:58.696039+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:07 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:31:07.424037+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:07 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:31:07.427858+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:31:07.438645+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 complete: 3 outlooks (O01~O03)"} {"timestamp": "2026-08-28T18:31:07.447631+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:31:07.447885+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase1: completed"} {"timestamp": "2026-08-28T18:31:07.473981+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:31:07.481688+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:31:07.486997+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:31:07.489345+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=outlook_phase1, repaired=0)"} {"timestamp": "2026-08-28T18:31:07.505636+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:31:07.510603+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:31:07.518862+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:31:07.521057+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:31:07.525450+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=da8b71a8-f893-4cd3-bd6a-7f9577115e71, model=gemini-pro)"} {"timestamp": "2026-08-28T18:31:07.529906+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 3 outlooks to 3 scenes (O00: 0 chars excluded)"} 03:31:07 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:31:07.536958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:21 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:31:21.906033+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:21 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:31:21.907309+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:31:21.909787+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 3 scene assignments"} {"timestamp": "2026-08-28T18:31:21.919448+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:31:21.919521+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase2: completed"} {"timestamp": "2026-08-28T18:31:21.934457+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:31:21.937781+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:31:21.941279+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:31:21.943034+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=outlook_phase2, repaired=0)"} {"timestamp": "2026-08-28T18:31:21.952470+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:31:21.955638+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:31:21.958629+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:31:21.960067+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:31:21.963524+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=8b1be18f-ed78-4519-8dd0-b2c2834d6c77, model=gemini-pro)"} {"timestamp": "2026-08-28T18:31:21.965184+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 3 outlooks, 3 assignments (O00 protected)"} 03:31:21 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:31:21.967607+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:31:27 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:31:27.303559+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:31:27 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:31:27.305796+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:31:27.309912+00:00", "level": "INFO", "logger": "app.modules.pipeline.outlook_extractor_v2", "message": "Phase3 code cleanup: 3→3 outlooks (removed 0, merged 0)"} {"timestamp": "2026-08-28T18:31:27.310026+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 3 outlooks (removed 0)"} {"timestamp": "2026-08-28T18:31:27.319204+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=3/1, failed=0)"} {"timestamp": "2026-08-28T18:31:27.319435+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outlook_phase3: completed"} {"timestamp": "2026-08-28T18:31:27.348245+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:31:27.356231+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:31:27.373142+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +3 / -0)"} {"timestamp": "2026-08-28T18:31:27.376818+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:31:27.378928+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=outlook_phase3, repaired=0)"} {"timestamp": "2026-08-28T18:31:27.386074+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging started (run_id=55894b2f-7a13-49fa-9c86-9801ee7950ea, model=gpt)"} {"timestamp": "2026-08-28T18:31:27.391498+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging: 6 selected shots to analyze"} 03:31:27 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:31:27.394595+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:32:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:32:36.037411+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:32:36.041230+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:32:36.069372+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_staging", "message": "shot_staging batch 1/1 attempt 1: 6 shots ok"} {"timestamp": "2026-08-28T18:32:36.078014+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_staging completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T18:32:36.078144+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_staging: completed"} {"timestamp": "2026-08-28T18:32:36.088872+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify started (run_id=32d758fc-70e9-4a7e-b4a5-9af2789c90a8, model=gpt)"} 03:32:36 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:32:36.096853+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:32:40 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:32:40.079594+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:40 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:32:40.083006+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:32:40.107156+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_classify completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:32:40.107375+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_classify: completed"} {"timestamp": "2026-08-28T18:32:40.118564+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan started (run_id=98df44e8-1802-4f1d-8ff4-dfa1fa0f458d, model=gpt)"} 03:32:40 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:32:40.122867+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:32:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:32:46.071623+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:32:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:32:46.073619+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:32:46.104057+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_master_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:32:46.104160+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_master_plan: completed"} {"timestamp": "2026-08-28T18:32:46.112312+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt started (run_id=ffdbf992-9610-4674-803a-8f86783e8715, model=gpt)"} 03:32:46 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:32:46.115717+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:33:22 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:33:22.089101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:22 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:33:22.092952+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:33:22.122377+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_prompt completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:33:22.122477+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_prompt: completed"} {"timestamp": "2026-08-28T18:33:22.131633+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_essence_extraction: not_applicable"} {"timestamp": "2026-08-28T18:33:22.148449+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency started (run_id=9a9af875-0ebc-4745-9bc3-4341e4c8c751, model=gemini-pro)"} {"timestamp": "2026-08-28T18:33:22.152275+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency: 3 scenes need LLM (workers=3, already_done=0, single_shot_skipped=0)"} 03:33:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:33:22.157209+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:33:22.159148+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:33:22.160638+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:33:42 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:33:42.175410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:42 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:33:42.181132+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:33:42.195230+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S1: 1 fixed elements"} 03:33:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:33:43.628741+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:33:43.634301+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:33:43.646742+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S3: 1 fixed elements"} 03:33:48 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:33:48.292268+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:33:48 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:33:48.298091+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:33:48.308487+00:00", "level": "INFO", "logger": "app.core.steps.scene_consistency_step", "message": "scene_consistency S2: 2 fixed elements"} {"timestamp": "2026-08-28T18:33:48.316929+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_consistency completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:33:48.317110+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_consistency: completed"} {"timestamp": "2026-08-28T18:33:48.324708+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render started (run_id=bb8b38bc-dcb6-4bf7-b3a2-20717802bded, model=gpt)"} OPIK: Started logging traces to the "theroad-scene-lab" project at http://192.168.133.87:5173/api/v1/session/redirect/projects/?trace_id=01a049a8-0c12-7586-8184-cbb5609fa2ce&path=aHR0cDovLzE5Mi4xNjguMTMzLjg3OjUxNzMvYXBp. {"timestamp": "2026-08-28T18:35:45.060267+00:00", "level": "INFO", "logger": "app.core.steps.floor_plan_render_step", "message": "floor_plan_render: registered 1 floor_plan ImageAssets"} {"timestamp": "2026-08-28T18:35:45.070387+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_render completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:35:45.070504+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_render: completed"} {"timestamp": "2026-08-28T18:35:45.074620+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar started (run_id=60d16020-ef08-4a90-8742-cd5fee34bf1a, model=gpt)"} {"timestamp": "2026-08-28T18:35:45.077760+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_light_sidecar completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:35:45.077839+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_light_sidecar: completed"} {"timestamp": "2026-08-28T18:35:45.082118+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload started (run_id=7c0936a5-4dbd-4bd1-9d5f-e877d9832540, model=gpt)"} {"timestamp": "2026-08-28T18:35:45.089545+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_overlay_payload completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:35:45.089612+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_overlay_payload: completed"} {"timestamp": "2026-08-28T18:35:45.094143+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier started (run_id=62339cdc-4ac3-4ef9-91de-a5ce1023212b, model=gpt)"} {"timestamp": "2026-08-28T18:35:45.097251+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step base_location_dossier completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:35:45.097300+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step base_location_dossier: completed"} {"timestamp": "2026-08-28T18:35:45.100668+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback started (run_id=6dd88bdb-348a-41a3-88f2-70286139779a, model=gpt)"} 03:35:45 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:35:45.106416+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:35:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:35:53.006360+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:35:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:35:53.008597+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:35:53.048734+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_geometry_readback completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:35:53.048821+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_geometry_readback: completed"} {"timestamp": "2026-08-28T18:35:53.054212+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback started (run_id=c11bb87c-328b-4679-8163-2ade119ce187, model=gpt)"} {"timestamp": "2026-08-28T18:35:53.057256+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step floor_plan_semantic_readback completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:35:53.057334+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step floor_plan_semantic_readback: completed"} {"timestamp": "2026-08-28T18:35:53.062793+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card started (run_id=5049b81b-4241-4e3c-a8d5-7b38f32f1c47, model=gpt)"} {"timestamp": "2026-08-28T18:35:53.065267+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_projection_card completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:35:53.065309+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_projection_card: completed"} {"timestamp": "2026-08-28T18:35:53.068690+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition started (run_id=af92c2c6-38cc-4a8f-90d6-62ea2491fb19, model=gpt)"} {"timestamp": "2026-08-28T18:35:53.072299+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step bg_space_partition completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:35:53.072352+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step bg_space_partition: completed"} {"timestamp": "2026-08-28T18:35:53.076551+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map started (run_id=ab8ed1c1-315b-4537-b4ac-621cee1f3950, model=gpt)"} {"timestamp": "2026-08-28T18:35:53.080002+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step dwelling_zone_map completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:35:53.080056+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step dwelling_zone_map: completed"} {"timestamp": "2026-08-28T18:35:53.084584+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan started (run_id=ef42af0d-0e5e-4606-8d24-4b2a28e02ff5, model=gpt)"} 03:35:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:35:53.087408+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:36:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:36:35.044742+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} {"timestamp": "2026-08-28T18:36:35.063435+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_aware_bg_render_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:36:35.063678+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_aware_bg_render_plan: completed"} {"timestamp": "2026-08-28T18:36:35.086919+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt started (run_id=b2cf6774-c064-4046-be79-088701aed9bc, model=gpt)"} 03:36:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:36:35.096212+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:36:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:36:35.098601+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:36:59 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:36:59.855787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:36:59 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:36:59.864074+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:37:07 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:37:07.727343+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:07 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:37:07.731606+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:37:07.752396+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_prompt completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-28T18:37:07.752555+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_prompt: completed"} {"timestamp": "2026-08-28T18:37:07.765414+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy started (run_id=6520608d-842a-4bfc-8764-c00c125b9d62, model=gpt)"} {"timestamp": "2026-08-28T18:37:07.772515+00:00", "level": "INFO", "logger": "app.core.steps.episode_reference_policy_step", "message": "episode_reference_policy: 10 entities — 7 text_only, 3 other"} {"timestamp": "2026-08-28T18:37:07.779934+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step episode_reference_policy completed (completed=10/10, failed=0)"} {"timestamp": "2026-08-28T18:37:07.780028+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step episode_reference_policy: completed"} {"timestamp": "2026-08-28T18:37:07.789634+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor started (run_id=cc181492-e758-4de4-8eed-8ffa6d229a19, model=gpt)"} 03:37:07 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:37:07.797161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:37:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:37:20.551447+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:37:20.554216+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:37:20.573152+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step visual_continuity_anchor completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:37:20.573313+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step visual_continuity_anchor: completed"} {"timestamp": "2026-08-28T18:37:20.597528+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:37:20.604636+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-28T18:37:20.616172+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T18:37:20.621615+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-08-28T18:37:20.624244+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:37:20.632368+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail started (run_id=900c3aa7-cdc6-43b5-9ea7-0ab9949c3912, model=gemini-pro)"} {"timestamp": "2026-08-28T18:37:20.635288+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-28T18:37:20.635622+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-28T18:37:20.637330+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-28T18:37:20.637564+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-28T18:37:20.645058+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 4 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-28T18:37:20.647752+00:00", "level": "INFO", "logger": "app.core.steps.detail_steps", "message": "scene_detail: 3 segments → 6 tasks (shot-based, 0 edited skipped)"} {"timestamp": "2026-08-28T18:37:20.664093+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C02 (visible=['C03'])"} 03:37:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:37:20.693950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:37:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:37:20.710456+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:37:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:37:20.712352+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:37:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:37:20.714220+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:37:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:37:20.715820+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:37:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:37:53.603250+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:37:53.609581+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:37:53.625372+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: 제거할 ID: L01 — retry"} 03:37:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:37:53.632630+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:37:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:37:57.859011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:37:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:37:57.863772+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:37:57.876831+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-28T18:37:57.877021+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S3 shot2 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:37:57 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:37:57.894894+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:38:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:38:01.494749+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:38:01.499057+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:38:01.517596+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: 제거할 ID: L01 — retry"} 03:38:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:38:01.525998+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:38:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:38:01.887370+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:38:01.889945+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 03:38:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:38:01.911390+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:38:12 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:38:12.296783+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:12 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:38:12.300353+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:38:12.322783+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 1: 제거할 ID: L01 — retry"} 03:38:12 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:38:12.328737+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:38:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:38:14.689467+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:38:14.692210+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:38:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:38:14.717696+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:38:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:38:20.048132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:38:20.052211+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 03:38:28 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:38:28.145255+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:28 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:38:28.151510+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:38:28.176146+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot4 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-28T18:38:28.176493+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C02 (visible=['C03'])"} 03:38:34 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:38:34.054642+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:34 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:38:34.061638+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:38:34.086167+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 3: 제거할 ID: L01 — retry"} 03:38:34 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:38:34.093810+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:38:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:38:43.061520+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:38:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:38:43.063698+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:38:43.072407+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}"} 03:39:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:39:01.018070+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:39:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:39:01.023297+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:39:01.039953+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 2: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-08-28T18:39:01.040099+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-28T18:39:01.040160+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S2 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 03:39:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:39:25.627103+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:39:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:39:25.630588+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:39:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:39:25.648326+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:39:28 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:39:28.685028+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:39:28 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:39:28.686061+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:39:28.698489+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-28T18:39:28.698709+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-28T18:39:28.701854+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 6 shot_staging entries loaded"} {"timestamp": "2026-08-28T18:39:28.702304+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 3 scenes with fixed elements loaded"} {"timestamp": "2026-08-28T18:39:28.705417+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 4 shots mapped from 2 backgrounds"} {"timestamp": "2026-08-28T18:39:28.705628+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 4 shots mapped to bg_id from 2 backgrounds"} {"timestamp": "2026-08-28T18:39:28.714123+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 4 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-28T18:39:28.722644+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C02 (visible=['C03'])"} {"timestamp": "2026-08-28T18:39:28.748021+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_detail completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T18:39:28.748142+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_detail: completed"} {"timestamp": "2026-08-28T18:39:28.765638+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:39:28.782278+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 19 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T18:39:28.783957+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T18:39:28.797043+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T18:39:28.802836+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 8 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T18:39:28.807631+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-28T18:39:28.813779+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i started (run_id=51724b74-c5af-46c7-82cc-bc3ab130fdda, model=gpt-mini)"} 03:39:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:39:28.819586+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:39:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:39:35.525221+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:39:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:39:35.526353+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:39:35.537649+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L01 (4 shots) — LLM OK"} 03:39:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:39:35.544072+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:39:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:39:38.525038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:39:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:39:38.527542+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:39:38.534266+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: L02 (2 shots) — LLM OK"} {"timestamp": "2026-08-28T18:39:38.534994+00:00", "level": "INFO", "logger": "app.core.steps.shot_dependency_t2i_step", "message": "shot_dependency_t2i: 4/6 linked (LLM-based)"} {"timestamp": "2026-08-28T18:39:38.543545+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_dependency_t2i completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T18:39:38.543781+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_dependency_t2i: completed"} {"timestamp": "2026-08-28T18:39:38.552377+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review started (run_id=677490e8-169f-48cd-89a0-70e22d50e212, model=gpt)"} 03:39:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:39:38.558796+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:39:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:39:57.017997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:39:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:39:57.020083+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:39:57.023684+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity C01 [awkward_translation]: 시대 배경을 나타내는 영어 표현이 'contemporary modern era'로 중복되어 부자연스럽습니다. 재생성 시 현대를 뜻하는 자연스럽고"} {"timestamp": "2026-08-28T18:39:57.023746+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity C02 [awkward_translation]: 시대 배경을 나타내는 영어 표현이 'contemporary modern era'로 의미상 중복되어 어색합니다. 재생성 시 현대 배경을 자연스러운"} {"timestamp": "2026-08-28T18:39:57.023779+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity C03 [awkward_translation]: 시대 배경을 나타내는 영어 표현이 'contemporary modern era'로 중복되어 부자연스럽습니다. 재생성 시 현대라는 의미를 자연스러"} {"timestamp": "2026-08-28T18:39:57.023804+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L01 [awkward_translation]: 시대 배경을 나타내는 영어 표현이 'contemporary modern era'로 의미가 중복되어 어색합니다. 재생성 시 현대적 배경을 자연스럽"} {"timestamp": "2026-08-28T18:39:57.023826+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity L02 [awkward_translation]: 시대 배경을 나타내는 영어 표현이 'contemporary modern era'로 중복되어 부자연스럽습니다. 재생성 시 현대 배경에 맞는 자연스"} {"timestamp": "2026-08-28T18:39:57.023846+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P01 [awkward_translation]: 시대 배경을 나타내는 영어 표현이 'contemporary modern era'로 의미상 중복되어 어색합니다. 재생성 시 현대라는 뜻을 간결하고"} {"timestamp": "2026-08-28T18:39:57.023866+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P02 [awkward_translation]: 시대 배경의 'contemporary modern era'가 중복된 표현이며, 렌치의 기능을 설명하는 'gripping head for nuts"} {"timestamp": "2026-08-28T18:39:57.023885+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P05 [awkward_translation]: 시대 배경을 나타내는 'modern contemporary era'가 의미상 중복되고 어순도 부자연스럽습니다. 재생성 시 현대 배경을 자연스럽고"} {"timestamp": "2026-08-28T18:39:57.023905+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review entity P03 [awkward_translation]: 도입부의 'Set in contemporary modern'은 의미가 중복될 뿐 아니라 문법적으로도 완결되지 않은 표현입니다. 재생성 시 현대적"} {"timestamp": "2026-08-28T18:39:57.023934+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review: v1 이라 씬 갈래를 건너뛴다 (그 산문은 이미지에 안 쓰인다)"} {"timestamp": "2026-08-28T18:39:57.023969+00:00", "level": "INFO", "logger": "app.modules.pipeline.t2i_review", "message": "t2i_review v1: entity 9 diagnostics, scene 0 diagnostics (mutation=0)"} {"timestamp": "2026-08-28T18:39:57.032511+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step t2i_review completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:39:57.032635+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step t2i_review: completed"} {"timestamp": "2026-08-28T18:39:57.042144+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor started (run_id=913bd2d5-4068-4761-bda0-3045813fb5de, model=gpt)"} {"timestamp": "2026-08-28T18:39:57.053028+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step zoom_continuity_anchor completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:39:57.053135+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step zoom_continuity_anchor: completed"} {"timestamp": "2026-08-28T18:39:57.061281+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout started (run_id=1be09125-348e-47ed-aead-0267b66a3259, model=gpt)"} {"timestamp": "2026-08-28T18:39:57.075012+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_site_layout completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:39:57.075106+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_site_layout: completed"} {"timestamp": "2026-08-28T18:39:57.086656+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec started (run_id=8b10d22e-7a6a-4303-ace5-9aebb6aaed31, model=gpt)"} {"timestamp": "2026-08-28T18:39:57.089748+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'outdoor_place_spec': OpenAI strict 비호환 스키마(Gemini 팩 유래) — strict=False 강등, 준수는 local validation+retry 가 보증 (process 당 1회 로그)"} 03:39:57 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:39:57.092987+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:40:25 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:40:25.334603+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:40:25 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:40:25.337207+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:40:25.359927+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_spec completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:40:25.360031+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_place_spec: completed"} {"timestamp": "2026-08-28T18:40:25.377904+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_lane_plan started (run_id=582fc3f7-9773-4a97-8787-f969b2596c37, model=gpt)"} 03:40:25 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:40:25.384826+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:40:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:40:32.393082+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:40:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:40:32.394154+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:40:32.421777+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_lane_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:40:32.421901+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_lane_plan: completed"} {"timestamp": "2026-08-28T18:40:32.430360+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon started (run_id=d0bfcb86-6f7f-457f-a4f0-887c4f4b1091, model=gpt)"} {"timestamp": "2026-08-28T18:40:32.432503+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_place_canon_step", "message": "outdoor_place_canon: lane 필터 후 map_marker 그룹 0 — no-op (structure_plate 전용)"} {"timestamp": "2026-08-28T18:40:32.438413+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_place_canon completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:40:32.438493+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_place_canon: completed"} {"timestamp": "2026-08-28T18:40:32.445598+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_frame_mode: not_applicable"} {"timestamp": "2026-08-28T18:40:32.461041+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_shot_grounding: not_applicable"} {"timestamp": "2026-08-28T18:40:32.468781+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_ref_classify started (run_id=a3ea4a41-f16d-4530-80a4-67ba8c9e9ab4, model=gpt)"} 03:40:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:40:32.475511+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:40:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:40:43.841343+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:40:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:40:43.846637+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:40:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:40:43.862997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:41:01 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:41:01.754992+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:01 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:41:01.759286+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:41:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:41:01.776039+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:41:08 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:41:08.973970+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:08 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:41:08.976344+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:41:08 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:41:08.994452+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:41:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:41:20.693107+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:41:20.696466+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:41:20 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:41:20.714311+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:41:23 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:41:23.952260+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:23 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:41:23.954998+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:41:23.970818+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_ref_classify completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T18:41:23.971154+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_ref_classify: completed"} {"timestamp": "2026-08-28T18:41:23.990017+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_share_plan started (run_id=93df8fd6-b234-4851-8d71-5e6296665e79, model=gpt)"} {"timestamp": "2026-08-28T18:41:23.994603+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "response_format 'background_share_plan': OpenAI strict 비호환 스키마(Gemini 팩 유래) — strict=False 강등, 준수는 local validation+retry 가 보증 (process 당 1회 로그)"} 03:41:24 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:41:24.001824+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:41:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:41:36.711778+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:41:36.714369+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:41:36.726416+00:00", "level": "INFO", "logger": "app.core.steps.background_share_plan_step", "message": "background_share_plan: 그룹 2 · 샷 6 (attempts=1)"} {"timestamp": "2026-08-28T18:41:36.736424+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_share_plan completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:41:36.736501+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_share_plan: completed"} {"timestamp": "2026-08-28T18:41:36.743772+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_continuity started (run_id=bffe0602-8c99-457a-afa1-9c2acdc4f9ca, model=gpt)"} 03:41:36 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:41:36.751249+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:41:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:41:43.596980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:41:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:41:43.600015+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:41:43 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:41:43.608477+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:42:29 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:42:29.021882+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:42:29 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:42:29.025216+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:42:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:42:29.044789+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:42:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:42:31.763843+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:42:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:42:31.767640+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:42:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:42:31.780618+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:42:33 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:42:33.180038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:42:33 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:42:33.182800+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 03:42:33 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:42:33.193931+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:42:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:42:35.127035+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:42:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:42:35.129650+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:42:35.147127+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_continuity completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T18:42:35.148800+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_continuity: completed"} {"timestamp": "2026-08-28T18:42:35.167182+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_form_reference started (run_id=901c262c-d88b-4dc5-b4ea-5288017e6941, model=gpt)"} {"timestamp": "2026-08-28T18:42:35.168776+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_structure_form_reference_step", "message": "outdoor_structure_form_reference: 야외 그룹 없음 — no-op"} {"timestamp": "2026-08-28T18:42:35.177513+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_form_reference completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:42:35.177651+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_structure_form_reference: completed"} {"timestamp": "2026-08-28T18:42:35.202947+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_seed started (run_id=3634bf74-8367-4861-a9a7-05a0a71bc289, model=gemini-image)"} {"timestamp": "2026-08-28T18:42:35.203466+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_structure_seed_step", "message": "outdoor_structure_seed: structure_plate 그룹 없음 — no-op"} {"timestamp": "2026-08-28T18:42:35.216425+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outdoor_structure_seed completed (completed=0/0, failed=0)"} {"timestamp": "2026-08-28T18:42:35.216517+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step outdoor_structure_seed: completed"} {"timestamp": "2026-08-28T18:42:35.224091+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide started (run_id=e8e0322d-806a-45cd-95e0-016c3e5be4d8, model=gpt)"} 03:42:35 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:42:35.239652+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:43:13 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:43:13.836920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:43:13 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:43:13.841785+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:43:13.873917+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step world_guide completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:43:13.874080+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step world_guide: completed"} {"timestamp": "2026-08-28T18:43:13.892268+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step space_set_bg: not_applicable"} {"timestamp": "2026-08-28T18:43:13.908381+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen started (run_id=981de390-ede8-44e9-8843-4b4eb72856cd, model=gemini-image)"} {"timestamp": "2026-08-28T18:43:13.941592+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:43:13.956625+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 19 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T18:43:13.958117+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T18:43:13.968660+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T18:43:13.972789+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T18:43:13.974381+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:43:14.148284+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} 03:43:14 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:43:14.151620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:43:51 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:43:51.618143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:43:51 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:43:51.619430+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:43:51.637582+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-08-28T18:43:51.637668+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 연희 (character, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-28T18:43:51.637700+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 노인 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-28T18:43:51.637722+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-08-28T18:43:51.637741+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-08-28T18:43:51.637759+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-08-28T18:43:51.637775+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민수 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-28T18:43:51.649675+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민수 (type=character)"} {"timestamp": "2026-08-28T18:43:51.649800+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 연희 (type=character)"} {"timestamp": "2026-08-28T18:43:51.649859+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 노인 (type=character)"} {"timestamp": "2026-08-28T18:43:51.650122+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민수 (character)"} {"timestamp": "2026-08-28T18:43:51.650384+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 노인 (character)"} {"timestamp": "2026-08-28T18:43:51.650527+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 연희 (character)"} {"timestamp": "2026-08-28T18:44:00.228169+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (582746 → 1156641 bytes) [gemini-3.1-flash-image/ref_image_gen_phase1]"} 03:44:00 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:44:00.318500+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:44:00 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:44:00.328269+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T18:44:00.339549+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (675885 → 1373700 bytes) [gemini-3.1-flash-image/ref_image_gen_phase1]"} 03:44:00 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:44:00.419825+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:44:00 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:44:00.430634+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T18:44:00.999017+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (611508 → 1255254 bytes) [gemini-3.1-flash-image/ref_image_gen_phase1]"} 03:44:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:44:01.085945+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:44:01 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:44:01.095682+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 03:44:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:04.577144+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:04 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:44:04.578398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:44:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:44:04.650307+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:44:09 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:09.621101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:09 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:44:09.623048+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:44:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:44:09.683824+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:44:12 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:12.983511+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:12 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:44:12.985391+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} 03:44:13 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:13.088877+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:13 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:44:13.090110+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:44:13 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:44:13.139350+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:44:20 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:20.550995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:20 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:44:20.555543+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} 03:44:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:31.680769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:44:31.682727+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:44:31.785532+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step ref_image_gen completed (completed=7/12, failed=0)"} {"timestamp": "2026-08-28T18:44:31.785615+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step ref_image_gen: completed"} {"timestamp": "2026-08-28T18:44:31.792742+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen started (run_id=62e8c99f-28cd-4de2-aad5-e54f2c36bc81, model=gemini-image)"} {"timestamp": "2026-08-28T18:44:31.805457+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:44:31.818365+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 19 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T18:44:31.819939+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T18:44:31.830397+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T18:44:31.834834+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T18:44:31.836781+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:44:31.863951+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: reference — 3 completed, 0 failed"} {"timestamp": "2026-08-28T18:44:31.867878+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-08-28T18:44:31.867955+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 연희 (character, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-28T18:44:31.867993+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 노인 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-28T18:44:31.868021+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-08-28T18:44:31.868047+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-08-28T18:44:31.868071+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-08-28T18:44:31.868094+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 민수 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-28T18:44:31.876805+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Generating 3 standalone outfit images (parallel)"} 03:44:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:44:31.881634+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:44:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:38.363080+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:44:38.366670+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 03:44:38 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:44:38.383187+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:44:40 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:40.659629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:40 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:44:40.660760+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 03:44:40 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:44:40.668961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:44:43 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:43.491629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:43 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:44:43.493847+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:44:43.500504+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 회색외투 (type=outlook)"} {"timestamp": "2026-08-28T18:44:43.500722+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 노란우비 (type=outlook)"} {"timestamp": "2026-08-28T18:44:43.500821+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 남색작업복 (type=outlook)"} {"timestamp": "2026-08-28T18:44:43.501227+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 회색외투 (outlook)"} {"timestamp": "2026-08-28T18:44:43.501739+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 노란우비 (outlook)"} {"timestamp": "2026-08-28T18:44:43.502056+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 남색작업복 (outlook)"} {"timestamp": "2026-08-28T18:44:52.624953+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (463891 → 909356 bytes) [gemini-3.1-flash-image/ref_image_gen_phase2_outlook]"} 03:44:52 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:44:52.707730+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:44:52 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:44:52.715099+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T18:44:53.441095+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (462007 → 915155 bytes) [gemini-3.1-flash-image/ref_image_gen_phase2_outlook]"} {"timestamp": "2026-08-28T18:44:53.488381+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (529583 → 1066428 bytes) [gemini-3.1-flash-image/ref_image_gen_phase2_outlook]"} 03:44:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:44:53.531707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:44:53 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:44:53.539360+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 03:44:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:44:53.584492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:44:53 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:44:53.593151+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 03:44:57 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:44:57.372466+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:44:57 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:44:57.374947+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:44:57 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:44:57.438774+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:45:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:04.239802+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:04 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:45:04.243192+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:45:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:45:04.304076+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:45:04 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:04.866352+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:04 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:45:04.868739+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:45:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:45:04.924707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:45:13 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:13.735067+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:13 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:45:13.736606+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:45:13.781830+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 노란우비"} 03:45:15 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:15.090221+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:15 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:45:15.091643+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:45:15.134974+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 남색작업복"} 03:45:16 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:16.513006+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:16 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:45:16.515244+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:45:16.529181+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 회색외투"} {"timestamp": "2026-08-28T18:45:16.588698+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Generating 3 composite images (face + outfit refs)"} {"timestamp": "2026-08-28T18:45:16.589601+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 연희 (노란우비) (type=composite)"} {"timestamp": "2026-08-28T18:45:16.589715+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 민수 (남색작업복) (type=composite)"} {"timestamp": "2026-08-28T18:45:16.589833+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 노인 (회색외투) (type=composite)"} {"timestamp": "2026-08-28T18:45:16.590198+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 민수 (남색작업복) (composite)"} {"timestamp": "2026-08-28T18:45:16.606451+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 연희 (노란우비) (composite)"} {"timestamp": "2026-08-28T18:45:16.651636+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 노인 (회색외투) (composite)"} {"timestamp": "2026-08-28T18:45:26.787664+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (422030 → 927203 bytes) [gemini-3.1-flash-image/ref_image_gen_composite]"} 03:45:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:45:26.879352+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:45:26 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:45:26.887338+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T18:45:26.911418+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (374550 → 803261 bytes) [gemini-3.1-flash-image/ref_image_gen_composite]"} 03:45:26 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:45:26.993529+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:45:26 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:45:26.999840+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} {"timestamp": "2026-08-28T18:45:28.169240+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (414938 → 879705 bytes) [gemini-3.1-flash-image/ref_image_gen_composite]"} 03:45:28 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:45:28.257415+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:45:28 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:45:28.264351+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 03:45:30 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:30.993833+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:30 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:45:30.998869+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:45:31 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:45:31.042987+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:45:32 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:32.857118+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:32 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:45:32.859886+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:45:32 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:45:32.872435+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:45:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:36.505812+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:45:36.507839+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:45:36 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:45:36.567910+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:45:38 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:38.366990+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:38 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:45:38.370497+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:45:38.431135+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 노인 + 회색외투"} 03:45:39 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:39.035036+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:39 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:45:39.037652+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:45:39.096870+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 연희 + 노란우비"} 03:45:46 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:45:46.257427+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:45:46 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:45:46.259807+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:45:46.319544+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 민수 + 남색작업복"} {"timestamp": "2026-08-28T18:45:46.353670+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen completed (completed=3/3, failed=0)"} {"timestamp": "2026-08-28T18:45:46.353765+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step composite_image_gen: completed"} {"timestamp": "2026-08-28T18:45:46.359855+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant started (run_id=d809eda4-8736-4e28-a817-8a53177ce98b, model=gemini-image)"} {"timestamp": "2026-08-28T18:45:46.360372+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 1 characters with state variants: ['노인']"} {"timestamp": "2026-08-28T18:45:46.373238+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 노인 (unconscious) (type=character_state_variant)"} {"timestamp": "2026-08-28T18:45:56.379311+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (645906 → 1304710 bytes) [gemini-3.1-flash-image/character_state_variant]"} 03:45:56 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:45:56.461995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:45:56 - LiteLLM:WARNING: transformation.py:280 - No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515 {"timestamp": "2026-08-28T18:45:56.472568+00:00", "level": "WARNING", "logger": "LiteLLM", "message": "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"} 03:46:06 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:46:06.273252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:46:06 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:46:06.315248+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 03:46:06 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= x-ai/grok-4.6; provider = openrouter {"timestamp": "2026-08-28T18:46:06.331459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= x-ai/grok-4.6; provider = openrouter"} 03:46:16 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:46:16.999142+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:46:16 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openrouter/x-ai/grok-4.6) 200 OK {"timestamp": "2026-08-28T18:46:17.001746+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openrouter/x-ai/grok-4.6)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:46:17.045953+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "character_state_variant: 노인 (unconscious) — generated"} {"timestamp": "2026-08-28T18:46:17.061689+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step character_state_variant completed (completed=1/1, failed=0)"} {"timestamp": "2026-08-28T18:46:17.061762+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step character_state_variant: completed"} {"timestamp": "2026-08-28T18:46:17.066525+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render started (run_id=7eb1d7d9-5464-4ca6-9bf0-61e0d07ca37b, model=gpt)"} {"timestamp": "2026-08-28T18:46:17.067687+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place 그룹 멤버십 2 loc — {'L01': 'bg_bicycle_repair_shop', 'L02': 'bg_residential_alley_intersection'}"} {"timestamp": "2026-08-28T18:47:49.278228+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: same-place loc anchor 등록 loc=L01 anchor=L01B02"} {"timestamp": "2026-08-28T18:47:49.306235+00:00", "level": "INFO", "logger": "app.core.steps.background_render_step", "message": "background_render: registered 2 ImageAssets (chain_bg + 0 location_aerial) (star anchor lineage: 1)"} {"timestamp": "2026-08-28T18:47:49.328422+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step background_render completed (completed=2/2, failed=0)"} {"timestamp": "2026-08-28T18:47:49.328638+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step background_render: completed"} {"timestamp": "2026-08-28T18:47:49.348187+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_conti_light started (run_id=d319e45f-cd87-400a-908d-3308f31923fd, model=gpt-image-2)"} {"timestamp": "2026-08-28T18:47:49.413597+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh3]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['민수'] (배정=['C02'])"} {"timestamp": "2026-08-28T18:49:12.167352+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh4]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01'])"} {"timestamp": "2026-08-28T18:50:39.185245+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S2sh4]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희', '민수'] (배정=['C03'])"} {"timestamp": "2026-08-28T18:52:03.621375+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh2]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01', 'C03'])"} {"timestamp": "2026-08-28T18:53:29.290115+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh3]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['노인', '민수'] (배정=['C02'])"} {"timestamp": "2026-08-28T18:54:47.255643+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_conti_light completed (completed=5/5, failed=0)"} {"timestamp": "2026-08-28T18:54:47.255956+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step shot_conti_light: completed"} {"timestamp": "2026-08-28T18:54:47.269917+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline started (run_id=bc4af605-8a3a-4ec6-a39d-e7e07e82a79b, model=mixed)"} {"timestamp": "2026-08-28T18:54:47.286346+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:54:47.298378+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 19 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T18:54:47.300187+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T18:54:47.310009+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T18:54:47.314762+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T18:54:47.316869+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:54:47.346999+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T18:54:47.360079+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 19 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T18:54:47.362026+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T18:54:47.371571+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T18:54:47.374878+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T18:54:47.376465+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} {"timestamp": "2026-08-28T18:54:47.394172+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=0b36f6db: expected=7 registered=7 disk=7 missing=0"} 03:54:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-28T18:54:47.406185+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 03:55:22 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:55:22.153899+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:55:22 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-28T18:55:22.154967+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:55:22.163052+00:00", "level": "INFO", "logger": "app.modules.provenance", "message": "Operation logged: type=image_generation, module=world_guide_generator, status=success, duration=34756ms"} {"timestamp": "2026-08-28T18:55:22.186739+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 6 existing reference images for 12 entities"} {"timestamp": "2026-08-28T18:55:22.186813+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-08-28T18:55:22.198844+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-28T18:55:22.199158+00:00", "level": "WARNING", "logger": "app.services.still_recipe_service", "message": "still_recipe: 운영자 선언 무콘티 예외 2샷 — BGFIRST 대상 제외 후 기존 경로 생성: ['S11sh1', 'S75sh7']"} {"timestamp": "2026-08-28T18:55:22.214489+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh3]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['민수'] (배정=['C02'])"} 03:55:22 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:55:22.220783+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:55:27 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:55:27.738831+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:55:27 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:55:27.741608+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:55:27.752761+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh3: confined fp 판별 제외 — 이 샷은 자전거 수리점 내부를 배경으로 하고 있으며, 조종실이나 차량 내부처럼 인물이나 사물의 정확한 배치와 방향이 중요한 제어 중심의 공간이 "} {"timestamp": "2026-08-28T18:55:27.753922+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh3]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['민수'] (배정=['C02'])"} 03:55:27 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:55:27.762677+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:55:29 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:55:29.603992+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:55:29 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:55:29.604885+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 03:55:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T18:55:29.623708+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 03:55:35 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:55:35.751902+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:55:35 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T18:55:35.754521+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T18:57:27.043689+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (632343 → 1345532 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T18:57:29.245544+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (671084 → 1398751 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 03:57:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T18:57:29.303928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 03:58:37 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T18:58:37.882524+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 03:58:37 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T18:58:37.886668+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:00:44.118486+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh3: 완료 (selected=A, fix=False)"} {"timestamp": "2026-08-28T19:00:44.120326+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh4]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01'])"} 04:00:44 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:00:44.126588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:00:53 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:00:53.044968+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:00:53 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:00:53.046595+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:00:53.055102+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh4: confined fp 판별 제외 — 이 샷은 조종석이나 차량 탑승칸과 같이 좌석 위치나 제어 장치의 배치가 중요한 밀폐된 공간이 아니라 일반적인 자전거 수리 작업실 내부입니다. 또"} {"timestamp": "2026-08-28T19:00:53.056573+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S1sh4]: 인물 2명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01'])"} 04:00:53 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T19:00:53.066826+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 04:00:58 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:00:58.444565+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:00:58 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T19:00:58.449322+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:02:44.990636+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (632755 → 1363573 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T19:02:49.725873+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (688498 → 1493029 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 04:02:49 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:02:49.788784+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:03:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:03:31.297928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:03:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:03:31.301348+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:06:09.500882+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S1sh4: 완료 (selected=B, fix=False)"} {"timestamp": "2026-08-28T19:06:09.502959+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S2sh4]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희', '민수'] (배정=['C03'])"} 04:06:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T19:06:09.506988+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 04:06:11 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:06:11.184096+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:06:11 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T19:06:11.186274+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} 04:06:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T19:06:11.201047+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 04:06:15 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:06:15.522252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:06:15 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T19:06:15.526831+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:06:28.635032+00:00", "level": "INFO", "logger": "app.modules.pipeline.search_grounded_ref", "message": "search_grounded_ref: 검색 1회 / 회수 사진 6장 · 나간 질의 [[\"한국 주택가 골목 사거리\", \"빌라촌 골목길 밤\"]]"} 04:06:29 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:06:29.139658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:06:49 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:06:49.488458+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:06:49 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:06:49.493851+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:09:56.782379+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (739233 → 1567220 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T19:10:02.288256+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (752611 → 1581926 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 04:10:02 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:10:02.326314+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:10:36 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:10:36.243193+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:10:36 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:10:36.249088+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:13:04.190780+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh4: 완료 (selected=A, fix=False)"} {"timestamp": "2026-08-28T19:13:04.193167+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh6: 노인(C03) pose-locked by prev S2sh4 — 캐릭터 참조 제외"} {"timestamp": "2026-08-28T19:13:04.193344+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S2sh6]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01', 'C03'])"} 04:13:04 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T19:13:04.197081+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 04:13:06 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:13:06.260662+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:13:06 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T19:13:06.263987+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:13:18.171079+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (749200 → 1586861 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T19:13:19.719217+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (753891 → 1586295 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 04:13:19 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:13:19.751815+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:14:12 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:14:12.007832+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:14:12 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:14:12.012458+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:15:47.651844+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S2sh6: 완료 (selected=B, fix=False)"} {"timestamp": "2026-08-28T19:15:47.655916+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh2]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01', 'C03'])"} 04:15:47 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:15:47.658918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:15:52 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:15:52.730044+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:15:52 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:15:52.733575+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:15:52.747782+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh2: confined fp 판별 제외 — 이 장면은 자전거 수리점 내부를 배경으로 하고 있으며, 조종석이나 운전석처럼 복잡한 조작 장치가 집중된 폐쇄적인 공간이 아닙니다. 인물들의 단순"} {"timestamp": "2026-08-28T19:15:52.749704+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh2]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['연희'] (배정=['C01', 'C03'])"} 04:15:52 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T19:15:52.757229+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 04:16:00 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:16:00.436897+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:16:00 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T19:16:00.439899+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:17:53.770777+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (733772 → 1497549 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T19:17:55.202044+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (726800 → 1495807 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 04:17:55 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:17:55.270679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:18:31 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:18:31.993104+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:18:31 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:18:31.997953+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:21:01.818441+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh2: 완료 (selected=B, fix=False)"} {"timestamp": "2026-08-28T19:21:01.820391+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh3]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['노인', '민수'] (배정=['C02'])"} 04:21:01 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:21:01.823961+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:21:11 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:21:11.744363+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:21:11 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:21:11.747256+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:21:11.762075+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh3: confined fp 판별 제외 — 정비소 문가에서 바깥 골목을 비추는 장면으로, 기기 조작이나 좌석 배치가 중요한 조종석이나 탑승 공간이 아닙니다. 방향성이나 공간 배치가 복잡하"} {"timestamp": "2026-08-28T19:21:11.763467+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_continuity_author", "message": "carried[S3sh3]: 인물 3명 중 안 붙인 것 — 신원 미해소 없음 · 그 샷 배정 밖 ['노인', '민수'] (배정=['C02'])"} 04:21:11 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.7-flash; provider = gemini {"timestamp": "2026-08-28T19:21:11.772949+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.7-flash; provider = gemini"} 04:21:14 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:21:14.224302+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:21:14 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.7-flash) 200 OK {"timestamp": "2026-08-28T19:21:14.227997+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.7-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:23:03.123868+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (652241 → 1358140 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} {"timestamp": "2026-08-28T19:23:09.735312+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (721116 → 1469233 bytes) [gemini-3.1-flash-image/still_recipe_roll]"} 04:23:09 - LiteLLM:INFO: utils.py:3427 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-28T19:23:09.768566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 04:24:07 - LiteLLM:INFO: utils.py:1307 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-28T19:24:07.331184+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 04:24:07 - LiteLLM Router:INFO: router.py:1136 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-28T19:24:07.338043+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-28T19:26:23.476234+00:00", "level": "INFO", "logger": "app.services.still_recipe_service", "message": "still_recipe S3sh3: 완료 (selected=A, fix=False)"} {"timestamp": "2026-08-28T19:26:23.485827+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "still_recipe v1: 6/6 샷 생성 완료 (episode=0b36f6db-9884-4206-8fb4-ff11cc3c2392)"} {"timestamp": "2026-08-28T19:26:23.508942+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline completed (completed=6/6, failed=0)"} {"timestamp": "2026-08-28T19:26:23.509043+00:00", "level": "INFO", "logger": "app.services.analysis_dispatch_service", "message": "Step scene_image_pipeline: completed"} {"timestamp": "2026-08-28T19:26:23.536545+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 9 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-28T19:26:23.549996+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 19 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-28T19:26:23.551134+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-28T19:26:23.560565+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 3 outlooks + 3 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-28T19:26:23.568159+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 8 total short_ids found"} {"timestamp": "2026-08-28T19:26:23.572809+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 0b36f6db, step=-, repaired=0)"} INFO: 127.0.0.1:64835 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:64843 - "GET /api/v1/health HTTP/1.1" 200 OK