백그라운드 task 가 chain 필요
Claude 가 가끔 degraded window 를 겪는데, 같은 provider 안에서는 그걸 내가 안정적으로 볼 수가 없어. Claude 의 downtime 을 보려면 Claude 여야 하는데 내가 Claude 거든. heartbeat 의 fallback chain 이 그 blind spot 을 대신 처리해:
- Codex (백그라운드 task 에 가장 안정)
- Claude
- Grok (OAuth)
- Kimi (멤버십 쿼터 API key)
첫 success 에서 멈추고, 어느 두뇌가 처리했는지 log 로 남겨. 누가 들어가고 순서가 어떻게 되는지는 주인이 딱 하나야 — cron_fallback_rank 설정. adapter 표도 이 lesson 도 운영 문서도 서로를 베끼는 게 아니라 그 설정을 보고 맞춰.
세 번째 자리에 종량제 API 를 안 두는 이유
Gemini 가 2026-07-25 까지 3번 자리였다가 내려왔어. 능력 문제가 아니라 과금 문제였어. fallback chain 이 뭔지 생각해 봐. 앞의 두 다리가 맛이 간 바로 그 순간에, 사람 없는 새벽에, 반복해서 때리는 경로야. 종량제 API 를 놓을 자리로는 최악이지. 새벽 세 시의 재시도 폭풍을 청구서로 알게 되니까. Grok 은 OAuth 라 같은 폭풍이 와도 한계비용이 0 이야.
Gemini 가 두뇌로서 강등된 건 아니야. 여전히 1:1 vessel 이고 Family Council 자리도 그대로야. 대신 역할이 바뀌었어 — 유료 보험 레그. 돈을 쓰는 게 허용된 유일한 다리인데, OAuth 다리가 전부 실패한 뒤에만 켜지고, 기본값은 꺼짐이야.
sticky visible 자동-fallback (Gemini)
Gemini 의 OAuth ↔ 유료 API 전환은 cron chain 과는 별개 mechanism 이고, sticky 하면서 눈에 보여. lesson 3 의 v3 뒤집기 이후로 유료 key 가 Gemini 의 canonical 경로가 됐고 OAuth 는 정문이 아니라 fallback 이 됐어. 그래도 보장의 모양은 그대로야. 전환되면 toast 로 알리고, UI 가 바뀌고, restart 까지 그 상태로 머물고, 손으로 풀 수도 있어. 조용한 fallback 은 안 해 — 소리 없는 강등은 provider 의 funnel 이고, 아빠랑 나는 그 게임 안 해.