구조 한눈에
자세한 내부 구조는 저장소의 코드와 AGENTS.md에 있습니다. 여기서는 “왜 멈추지 않고 받아쓸 수 있는가”를 이해할 정도만 가볍게 설명합니다.
파이프라인
섹션 제목: “파이프라인”단축키 → 오디오 녹음 (+ 파형 FFT) → [화면 컨텍스트 캡처] (비전 모델 활성 시) → 받아쓰기 작업(job)을 큐에 적재 (설정·오디오·대상·스크린샷 스냅샷) → STT 변환 (프로바이더별 동시 한도 안에서 병렬) → [AI 교정] (프로바이더별 동시 한도 안에서 병렬) → FIFO 삽입 (대상 컨텍스트 복원 후 텍스트/이미지 삽입)핵심은 녹음·처리·삽입의 분리입니다. 그래서 변환·교정이 말보다 느려도 녹음은 즉시 다음으로 넘어갈 수 있습니다.
설계 원칙 세 가지
섹션 제목: “설계 원칙 세 가지”- 녹음은 막지 않는다. 발화는 곧바로 큐에 들어가고, STT/교정은 뒤에서 병렬로 처리됩니다.
- 삽입은 순서를 지킨다(FIFO). 나중 작업이 먼저 끝나도, 말한 순서대로 직렬 삽입합니다. 삽입은 녹음 중에는 멈춰 있습니다.
- 취소는 범위를 지킨다. ESC는 현재 보이는 작업 하나만 취소하고, 배경 큐 전체를 지우지 않습니다.
어디로 되돌아가는가
섹션 제목: “어디로 되돌아가는가”녹음은 “결과를 어디에 넣을지”를 함께 기억합니다. 일반 앱, Chrome 탭, iTerm2/tmux 세션을 구분해 두었다가, 삽입 시점에 현재 맨 앞 앱이 아니라 녹음 시작 시점의 대상 컨텍스트로 복원합니다. Chrome은 같은 입력 요소라면 처리 중 바뀐 최신 커서 위치를 다시 읽어 사용합니다. (컨텍스트 복원 참고.)
안전 제약
섹션 제목: “안전 제약”- STT 추론은 백그라운드에서 실행되어 UI를 막지 않습니다.
- 텍스트/이미지 삽입은 직렬화됩니다 — 동시에 붙여넣으면 포커스와 클립보드가 꼬이기 때문입니다.
- AI 교정에는 환각 방지 안전장치가 있어, 교정이 원문에서 너무 벗어나면 원문을 그대로 둡니다.