문제
개발 중 실행 로그, 오류와 해결 과정은 터미널과 IDE에 흩어집니다. Kivra는 프로젝트와 실행 기록, 해결 노트를 로컬 데스크톱 앱에 모으는 협업 프로젝트입니다. 저는 터미널과 서로 다른 편집기의 실행 기록을 같은 형식으로 수집하고, 앱에서 프로젝트 맥락과 함께 볼 수 있게 연결했습니다.
선택한 방법
실행 기록 수집 계약과 도구 연결
제가 작성한 PR #1에서 실행 시작·이벤트·종료 데이터의 공통 계약을 packages/protocol에 추가하고, zsh 터미널 캡처, Rust의 기록 읽기와 실행 목록 화면을 연결했습니다. 명령을 실행한 시점부터 출력과 종료 결과를 남기고, 외부에서 수집한 기록도 앱의 Runs 목록에 합치도록 확장했습니다.
VS Code와 JetBrains 통합도 같은 수집 흐름을 사용하도록 변경했습니다. 편집기마다 별도의 기록 형식을 만드는 대신 공통 계약을 경계로 사용해, 터미널과 IDE의 수집 경로를 각각 수정해도 데스크톱에서 읽는 기준을 유지하도록 했습니다.
기존 구현의 책임 분리
PR #4에서는 커진 Rust 진입점의 인증, 기록 수집, 프로젝트와 통합 책임을 모듈로 분리했습니다. 렌더러의 컴포넌트, 서비스와 설정도 나눴습니다. 기존 동작을 유지하면서 인증, 기록 수집과 편집기 통합을 각각 수정할 수 있는 경계로 정리했습니다.
같은 흐름을 함께 개선한 기록
다른 기여자는 PR #2에서 중앙 실행 기록 저장 경로를 적용하고 VS Code 테스트와 진단 도구를 수정했습니다. 제 수집 흐름 구현 이후 같은 통합 경계를 함께 개선한 기록입니다. 실행 기록의 생성부터 저장 경로와 진단까지 같은 수집 흐름을 함께 다듬었습니다.
확인한 결과
Tauri 데스크톱 앱에서 외부 실행 기록을 읽어 프로젝트의 Runs 목록에 표시하는 흐름을 구현했습니다. 터미널, VS Code와 JetBrains가 공통 계약으로 기록을 남기고, Rust 모듈이 이를 읽어 렌더러에 전달합니다.
로컬 기록 수집은 선택적인 계정·동기화 기능과 구분해 구성했습니다. 수집 계약부터 편집기 연결, 저장 경로 협업과 모듈 분리까지 이어지며, 여러 도구가 같은 실행 맥락을 공유하는 경계를 설계한 경험입니다.