{ "title": "Jev 운영 API 배포와 합성 runtime 검증", "date": "2026-09-22", "source": { "forgejo_sha": "969d9e2c3c94b4f3356defbf02bc863e1c8e30e1", "api_image_sha256": "sha256:ba4a6ed98262ead78147e81cf54777f1bd655cf9aeb4f645d73624580b38b516", "source_hash_verification": { "candidate_matched_paths": 7, "matches_git_candidate": true } }, "pre_deploy_preservation": { "db_dump": { "path": "/volume1/docker/vignette-prod/backups/pre-deploy-jev-20260922.dump", "bytes": 11784055, "pg_restore_list_passed": true }, "rollback_inputs": { "environment_backup": "private/env.nas.before-jev-20260922", "compose_backup": "private/compose.before-jev-20260922.yml" }, "data_checks": { "table_count": 133, "row_digest_before_after_equal": true, "uploads": { "file_count": 93, "bytes": 52973, "manifest_before_after_equal": true } } }, "deployed_runtime": { "api_container_id": "c7ee7b5f374c", "api_healthy": true, "api_restart_count": 0, "engine_db_web_ids_unchanged": true }, "public_readiness": { "web_http_status": 200, "main_javascript": { "path": "/assets/index-BA_Q0J7Y.js", "http_status": 200, "content_type": "application/javascript" }, "health_http_status": 200, "db": true, "engine": true, "jev_configured": true, "auth_me_unauthenticated_status": 401, "cors": { "exact_origin": true, "credentials": true, "sessions_options_preflight_status": 200 }, "health_live_verified": false, "live_verified_note": "의도된 health 상태 플래그이며 실제 Jev 판단은 아래 합성 probe로 별도 확인했다." }, "synthetic_dialogue_probe": { "artifact": "scratch/jev/production-dialogue-final-20260922.json", "status": "done", "completed_turns": 3, "requested_turns": 3, "appraisal": { "provider": "openrouter", "model": "typesafe/jev-1.13-20260917", "latency_ms_by_turn": [612, 245, 271] }, "generation": { "provider": "openai", "model": "gpt-5.6-terra" }, "total_ms_by_turn": [4045.1, 2197.8, 3730.9], "cleanup": { "http_status": 200, "closed": false, "status": "not_required", "note": "stateless 경로의 정상 결과다." }, "provenance": "synthetic_only", "quality_pass": false }, "observations": { "deployment_availability": "배포 중 일시 502를 관측했으므로 무중단을 주장하지 않는다.", "previous_probe": "scratch/jev/production-dialogue-20260922.json은 cleanup 결과를 오판한 역사 증거로 보존한다.", "g6_producer_conflict": "기동 로그에 SupervisionResearchConflictError 1건을 관측했다. cohort별 예외 격리로 스케줄은 계속됐고 Jev·세션 경로와 분리되며, 이번 배포 diff에 producer·store 변경은 없다." }, "open_gates": [ "독립 한국어 감정·사실 품질 평가", "기존 경로 대비 전체 지연 반복 비교", "Google 인증 브라우저의 운영 회기 create/turn/end", "운영 DB 감정 영속화 확인", "G6-PRODUCER-CONFLICT: existing submission id/content hash 읽기 전용 대조, 동일 id 재실행 idempotency 충돌 해소, 해당 테스트와 실제 cycle 성공" ] }