"네 목소리가 어디로 가는지는 네가 내린 결정이어야지, 네트워크가 대신 내린 결정이면 안 돼."
세 모드, 하나의 선택
Firekeeper 의 정리 브레인은 세 곳에 살 수 있어. 그리고 어디에 둘지는 유저가 골라. 숨은 폴백 체인이 아니라 설정이야.
- Pippa Full, This Mac. localhost 의 cwkPippa. 풀 볼트, 소울, 브레인 라우팅 전부.
- Pippa Full, Tailscale. 같은 풀 Pippa 인데 설정해 둔 호스트로 사설 Tailscale 링크를 타고 가. 능력은 같고, 전송만 원격이고, 인증을 거쳐.
- Local Mini, Ollama. 컴팩트한 Pippa 맛 정리 프로토콜을 돌리는 작은 로컬 모델. cwkPippa 는 아예 안 써.
"This Mac" 이랑 "Tailscale" 은 같은 능력을 서로 다른 전송에 실어 나르는 거야. "Local Mini" 는 아예 다른, 가벼운 능력이고. 어느 쪽을 감수할지는 유저가 직접 골라.
왜 자동 폴백이 아냐?
이걸 조용한 체인으로 만들고 싶어지기 쉬워. This Mac 을 시도하고, 안 되면 Tailscale, 그다음 Local Mini, 그다음 결정론적. 바로 그 조용한 체인이 프라이버시 버그야. 오프라인으로만 쓰겠다고 일부러 고른 유저인데 localhost 가 잠깐 안 잡힌다고 그 말이 조용히 원격 호스트로 흘러가면 안 되잖아. (받아쓰기는 오디오를 어디에도 안 보내. 여기서 걸린 건 전사야.) 그래서 프로바이더는 요청을 보내기 전에, 고른 모드에 맞춰 정해져. 실패했을 때 Firekeeper 가 하는 건 Pippa 경로 밖으로만, 설정에 적힌 Ollama 호스트(기본은 localhost)로, 그다음엔 Mac 혼자로 움직이는 정해진 사다리야. Full Pippa 가 실패하면 커맨드 모드랑 골라서 켠 Full 받아쓰기는 Local Mini 로 내려가. 거기서도 안 되면 받아쓰기는 결정론적 정리로 가고, 커맨드는 아무것도 안 넣고 원시 전사를 히스토리에 남겨. 품질을 바꿔 끼우는 거지 프라이버시를 넓히는 게 아니야. 그리고 그게 눈에 보여. 오버레이가 로컬 단계 이름을 띄우고, 히스토리가 어느 레인이 답했는지 적고, 브레인 상태 칩이 대체됐다고 보여 줘. 유저가 고르지 않은 호스트로 손을 뻗는 일은 절대 없어.
조용한 폴백 (나쁨): 오프라인 유저 -> localhost 다운 -> 조용히 Tailscale 침 # 누수!
보이는 사다리 (좋음): Full Pippa 실패 -> Local Mini -> 결정론적 (받아쓰기)
또는 삽입 안 함 (커맨드)
단계마다 화면에 이름
Local Mini 고름 -> cwkPippa 도 오피스도 안 부름;
네가 정한 Ollama 호스트만
발목 잡는 디테일 둘
원격 모드는 조심할 게 있어. 연결 모드를 바꾸면 원격 인증이랑 세션 상태가 무효가 돼. Tailscale PIN 세션을 This Mac 요청에 끌고 갈 수 없거든. 그리고 원격 호출은 전부 유저가 취소할 수 있는 제한 시간을 달아야 해. 음성 캡처가 멈춰 버린 원격 경로를 기다리며 매달려 있으면 안 되니까. 쓴 경험에서 나온 규칙 하나 더. 원격 호스트를 절대 하드코딩하지 마. Firekeeper 는 호스트를 설정에 둬. 기계 하나의 주소를 코드에 박으면 어디서나 도는 앱이 그 Mac 전용 앱으로 쪼그라들거든.