"앱은 듣는 동안엔 잊을 수 없어야 하고, 멈추는 순간 스스로 잊어야 해."
한 약속의 두 반쪽
신뢰 계약엔 상관없어 보이는데 사실 같은 생각인 두 반쪽이 있어. 들을 땐 보이게. 마이크가 살아 있는 동안엔 놓칠 수 없는 표시가 떠. 파형이 움직이는 알약 모양 오버레이. 메뉴바 색이 살짝 바뀌는 정도가 아니라 눈에 확 걸리는 걸로. 솔직하게 단서 하나. 설정에서 이 알약을 숨길 수 있어. 그러면 약속의 바닥은 녹음하는 동안 빨갛게 바뀌는 메뉴바 마이크야. 끝나면 잊게. 받아쓰기가 끝나면 오디오는 기본으로 버려져. 둘이 같이 이렇게 말해. 언제 널 듣는지 늘 알 수 있고, 들은 건 안 쥐고 있어.
파형이 중요한 이유
라이브 파형은 장식이 아니야. 가만히 떠 있는 '녹음 중' 라벨은 거짓말을 할 수 있어. 아무것도 녹음 안 하는데 떠 있을 수도 있고, 더 나쁘게는 뭔가 녹음 중인데 안 떠 있을 수도 있고. 네 목소리에 맞춰 움직이는 파형은 증거야. 실제 캡처 탭에서 나오니까 오디오가 진짜로 흐를 때만 움직일 수 있거든. 표시기가 자기가 표시하는 것에 붙어 있는 거지. 주장을 시연으로 바꿔 놓는 작은 설계 선택이야.
잊기와 잃기 사이의 긴장
'전부 버리기' 는 진짜 필요랑 부딪혀. STT 나 정리가 실패했는데 오디오를 버리면 유저 단어가 영영 사라지잖아. Firekeeper 는 한쪽을 고르는 대신 이걸 의도적으로 풀어.
성공한 받아쓰기 -> 오디오 버림 (기본)
STT 실패 -> 오디오를 recovery-audio/ 로 옮김, 10개로 정리 (히스토리 켰을 때만)
정리 실패 -> 원시 전사가 이미 상태에 있음; 단어 절대 안 잃음
디스크 히스토리 -> 옵트인만
# 기본은 잊기. 실패 시에만, 짧게, 제한적으로 보존.
원시 전사가 정리가 돌기 전에 상태로 들어가. 그래서 정리가 실패해도 네 문장을 먹을 수가 없어. 복구 오디오는 실패한 경우에만 생기고, 개수에 상한이 있고, 돌아가면서 지워져. 보존은 이유가 붙은 예외지, 변명이 붙은 기본값이 아니야.