{ "schema": "vignette.agy-provider-recovery.v1", "captured_at": "2026-08-18T13:55:00+09:00", "symptom": "관리자 AI 운영 화면에서 agy_cli 카탈로그가 'Agy가 선택 가능한 모델을 반환하지 않았습니다'로 비어 있어 Claude 한도 회피용 공급자 전환이 불가했다.", "root_causes": [ "agy CLI가 2026-08부터 'agy models' 출력을 'model_id라벨' 형태로 변경 — _discover_agy_cli가 공백 포함 줄을 전부 버려 카탈로그가 비었다. 수정: 탭 파싱 + CLI 라벨 우선(commit 5afd92f8).", "공개 런타임 승격 체인의 psutil 환경 이식에서 SystemRoot 유실 — Go 계열 CLI(agy)가 인증서 풀/홈 해석에 실패해 빈 목록을 조용히 반환. 수정: _cli_subprocess_env() 백필 + Set-CompleteProcessEnvironment Machine 스코프 병합(commit 6369f294)." ], "promotion": { "runtime_root": "D:\\workspace\\vignette-public-runtime-6369f294", "commit": "6369f29439fab3c3998d44f8ee78d01b7a63eb66", "tree": "237d74f0fdc9bd808b537d4669efe96d8d90ad26", "watchdog_task": "VignettePublicRuntimeWatchdog 재등록(5분+로그온, SHA 핀) — register-boot-task.ps1이 부트 태스크만 갱신하고 워치독은 install-public-runtime-task.ps1 소관임을 확인, 승격 절차에 둘 다 포함시켰다." }, "verification": { "gateway_capabilities": "GET /v1/capabilities?provider=agy_cli → available=true, 14모델, default gemini-3.6-flash-high", "live_turn": "POST /v1/generate(provider=agy_cli, model=gemini-3.6-flash-high) → text '2', tokens_in 28423 / tokens_out 158 / cost_usd 0.0438195", "tests": "engine_gateway 65 passed, app 924 passed, PS 5.1 parser OK", "public_health_at_capture": "status=degraded·engine=false(Claude 구독 한도, 15:00 KST 리셋) — 소유자가 관리자 AI 운영에서 agy_cli로 전환 저장하면 생성 경로는 즉시 agy로 복구된다." } }