2026-03-10
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
cheolsu-proxy는 이날 PR 쉰 개를 main에 병합했습니다. 새벽에는 전날 연 빠른 설정(No Caching·Block Cookies), HTTP 요청 작성, 정규식 Rewrite 규칙, 고급 반복, Breakpoint 화면 분할(#127부터 #131)을 병합했습니다. 이어 fetch·HTTPie·Python requests 코드 내보내기(#133), multipart·urlencoded 바디 뷰어(#134), 자동 세션 저장·복원(#135), SSL Proxying 도메인 화이트리스트(#136), No Gzip 토글(#137), CONNECT 터널 인증 우회를 막은 프록시 인증(#139), 클라이언트 인증서(mTLS)(#140)가 들어왔습니다.
오전부터 오후까지는 앱 멈춤을 잡는 데 집중했습니다. 트레이 패널의 store 폴링을 Tauri 이벤트로 바꾸고(#132), 동기 RwLock과 OpenSSL 컨텍스트 생성, 인증서 생성, async Tauri 명령의 blocking I/O를 spawn_blocking이나 async 잠금으로 옮겼습니다(#138, #141, #143, #144, #145). macOS에서는 app.emit() 호출, 트레이와 메인 창 사이 IPC 동기화, WebKit 메인 스레드 잠금이 원인인 데드락을 차례로 고치며 tauri-plugin-store를 걷어냈고(#146, #149, #154, #155), 진단용 PR #147·#148은 닫았습니다. 감사 보고서를 바탕으로 심각도별 안정성 이슈 20건을 세 PR로 고치고 테스트를 붙였습니다(#150, #151, #152).
저녁에는 프런트엔드를 정리했습니다. 공통 훅 추출, localStorage 직접 접근을 Zustand persist 스토어로 통합, 폼 대화상자에 React Hook Form과 Zod 도입, 설정 페이지 분해(#156부터 #160)에 이어 미디어 미리보기와 요청·응답 헤더 구분, 찰스 프록시식 Proxy·Tools 네이티브 메뉴, 설정 드롭다운 표시 버그를 고쳤습니다(#161, #163, #165). 백엔드의 unwrap() 패닉 위험 제거와 Rust 테스트 CI(#164, #170), 한·영 가이드 재작성과 Mermaid 다이어그램(#166, #168), MCP 서버 통합 테스트 35건(#169), 스트레스 테스트 18종(#171), 일별 로그 로테이션(#172), 헬스체크(#173), 연결 풀과 리소스 제한(#174), 번들을 2.4MB에서 1.3MB로 줄인 최적화(#175), 로그 뷰어(#176), TLS Passthrough 관리 UI(#177)가 이어졌고, 업스트림 인증서 스니핑·캐시 최적화·ALPN 미러링(#178)으로 하루를 마쳤습니다.
rira는 전날 연 마우스 클릭 좌표 수정과 드래그 선택 #21을 병합하고, 마우스 히트 테스트의 잘못된 배율 변환을 없애며 HiDPI 회귀 테스트를 더했습니다(#22). 확대·축소와 전각 문자 선택 배경 수정 #23은 열린 채 병합되지 않았습니다. react-native-mcp는 WebSocket 네이티브 크래시 방어 패치 #110을 열었고 3월 15일에 병합됐습니다. ohah.github.io에는 크론 상태 기록 9개가 남았습니다.
공개 커밋 183개, 해당일 생성 또는 병합된 PR 56개를 정리했습니다. PR 생성 50개·병합 52개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/cheolsu-proxy
- feat(proxyapi_v2): 캐시 히트 최적화 및 ALPN 미러링 구현
- fix(i18n): logs-page 라인 번호 참조 업데이트
- style: docs 마크다운 포맷 수정
- fix(tls-passthrough): 삭제 시 인메모리 상태 동기화 및 실시간 업데이트 구현
- feat(proxyapi_v2): Upstream Certificate Sniffing 구현
- docs: TLS 인증서 고도화 전략 비교 문서 추가
- feat(desktop): About 메뉴에 앱 아이콘 추가
- fix(i18n): 소스 경로 참조 업데이트
- fix(i18n): TLS Passthrough 관련 번역 추가
- feat(desktop): 로그 뷰어에 TLS Passthrough 탭 UI 추가
- feat(desktop): TLS Passthrough 관리 기능 추가
- fix(i18n): 누락 번역 추가 및 소스 경로 참조 업데이트
- style: oxfmt 포맷 적용
- fix(desktop): 로그 뷰어 console.error를 toast.error로 변경
- chore: .cursorrules 파일 제거
- feat(tui): 로그 뷰어 탭 추가
- feat(desktop): 로그 페이지 라우터 및 사이드바 네비게이션 등록
- feat(desktop): 로그 페이지 한국어 번역 추가
- feat(desktop): 로그 뷰어 페이지 컴포넌트 추가
- feat(desktop): 로그 파일 조회/관리 Tauri 커맨드 추가
- chore: STABILITY_AUDIT.md 문서 제거
- fix: [profile.release]를 워크스페이스 루트로 이동
- style: document 마크다운 포맷 수정
- perf(desktop): Rust 릴리즈 빌드 최적화 프로필 추가
- perf(desktop): Monaco lazy loading 및 라우트 코드 스플리팅 적용
- perf(desktop): 이미지 에셋 최적화 — 로고 리사이즈 및 favicon 분리
- fix: host_mapping 테스트에 max_body_size 필드 추가
- refactor(proxy): PR #174 리뷰 피드백 반영
- feat(proxy): 연결 풀 및 리소스 제한 기능 추가 (#24)
- refactor: 파일 로깅에 max_log_files(7) 보관 기한 및 non_blocking writer 적용
- feat: 데몬 파일 로깅 및 일별 로그 로테이션 추가 (#26)
- fix(test): 스트레스 테스트 캐시 경로 충돌 해결
- test: 스트레스/부하 테스트 18종 추가 (#23)
- refactor(daemon): PR #173 리뷰 피드백 반영
- feat(daemon): 헬스체크 커맨드 추가 (#25)
- fix(test): cert 다운로드 테스트 기대값 수정
- ci: Rust Unit Test 워크플로우 재트리거
- fix(ci): OpenSSL 번들 경로 충돌 해결 — Tauri 크레이트 제외
- fix: 프로덕션 코드 unwrap() 안전화 및 Rust 테스트 CI 추가
- docs: 완료된 리팩토링 플랜 문서 및 docs 디렉토리 삭제
- test(mcp_server): 통합 테스트 35건 추가
- docs(document): Mermaid 다이어그램 추가 (한/영 문서 14종)
- docs: 불필요 문서 삭제 및 리팩토링 플랜 현황 업데이트
- refactor(proxy_daemon): InterceptEngine 필드를 Mutex에서 RwLock으로 전환
- perf(mcp_server): .lock().clone() 패턴 8곳 최적화
- fix(proxyapi_v2): tunnel_event.rs 프로덕션 코드의 unwrap() 15건을 안전한 에러 처리로 변경
- docs(document): 기능 문서 7종 전면 리라이트 (한/영)
- docs(document): 가이드 인덱스, 기본 사용법, 문제 해결, 릴리즈 노트 개선 (한/영)
- docs(document): 새 가이드 페이지 5종 추가 (한/영)
- style: cargo fmt 포맷 적용
- fix(proxyapi_v2): websocket 스킴 변환에 expect() 복원 (정적 문자열은 실패 불가)
- fix(proxyapi_v2): 리뷰 반영 - URI fallback 안전성 강화 및 websocket expect() 제거
- test(proxyapi_v2): WebSocket 스킴 변환 및 프로토콜 처리 단위 테스트 추가
- test(proxy_daemon): script_bridge 데이터 변환 로직 단위 테스트 추가
- fix(proxyapi_v2): 프로덕션 코드의 unwrap()/expect() 패닉 위험 제거
- fix: oxfmt 포맷 적용 후 i18n 카탈로그 라인 참조 업데이트
- style: oxfmt 포맷 적용
- fix(select): 모든 SelectItem에 label prop 추가하여 선택값 표시 버그 수정
- fix(settings): 설정 드롭다운에서 선택된 값이 영어로 표시되는 버그 수정
- feat(desktop): 찰스 프록시 스타일의 Proxy/Tools 네이티브 메뉴 추가
- style: oxfmt 포맷 적용
- chore: 디버그 로그 제거
- debug: useBodyFile 상세 추적 로그 추가
- debug: 응답 탭 데이터 흐름 추적 로그 추가
- fix(desktop): 파일 읽기를 BaseDirectory.AppCache로 변경하여 FS 스코프 문제 해결
- fix(desktop): 이미지 미리보기를 data URL 방식으로 변경
- fix(desktop): 미디어 로드 비동기 race condition 방지
- style: oxfmt 포맷 적용 및 i18n 카탈로그 업데이트
- feat(desktop): 헤더 탭에서 요청/응답 헤더 구분 표시
- fix(desktop): 미디어 미리보기 이미지가 표시되지 않는 버그 수정
- fix(desktop): 웹소켓 대시보드 패널 드래그 크기가 localStorage에 저장되지 않는 버그 수정
- refactor: 출시 전이므로 불필요한 localStorage 마이그레이션 코드 제거
- style: oxfmt 포맷 적용 및 i18n 카탈로그 업데이트
- refactor: useSettingsStore를 useAppSettingsStore로 통합
- refactor: settings-page.tsx를 섹션별 컴포넌트로 분해
- style: oxfmt 포맷 적용 및 i18n 카탈로그 업데이트
- refactor: as never 캐스팅 제거 및 headerPairSchema 중복 제거
- refactor: 폼 다이얼로그에 React Hook Form + Zod 도입
- style: i18n 카탈로그 줄번호 업데이트
- style: oxfmt 포맷 적용
- refactor: PR 리뷰 피드백 반영 — 레거시 키 정리, 주석 개선, 그룹 setter 추가
- refactor: localStorage 직접 접근을 Zustand persist store로 통합
- style: i18n 카탈로그 줄번호 업데이트
- style: oxfmt 포맷 적용
- refactor: PR #156 리뷰 피드백 반영 — FSD 훅 위치 이동 및 선택자 분리
- refactor: 공통 커스텀 훅(useHeaderEditor, useTransactionSelectors) 추출
- fix(desktop): macOS WebKit 메인 스레드 데드락 수정 — emit()을 run_on_main_thread()로 변경
- refactor: send_command 로직을 공유 함수로 분리하여 불필요한 Arc clone 제거
- fix: macOS WebKit 메인 스레드 데드락 방지를 위한 mutex 잠금 범위 최소화
- style: i18n 카탈로그 줄번호 업데이트 (oxfmt 포맷 반영)
- style: oxfmt 포맷 적용
- fix: 컨텍스트 메뉴 간격 수정 및 아이콘 버튼 툴팁 추가
- style: i18n 카탈로그 업데이트 (advanced-repeat-dialog 줄번호 변경)
- style: STABILITY_AUDIT.md oxfmt 포맷 적용
- fix: PR #152 리뷰 반영
- fix: MEDIUM 안정성 이슈 10건 수정 (#11~#20)
- fix: PR #151 리뷰 반영
- fix: HIGH 안정성 이슈 6건 수정
- test: 크리티컬 안정성 수정에 대한 유닛테스트 13건 추가
- fix: PR 리뷰 반영 - 안정성 이슈 5건 추가 수정
- fix: 크리티컬 안정성 이슈 4건 수정 및 감사 보고서 추가
- fix(desktop): tauri-plugin-store 완전 제거
- style: tray-panel.tsx oxfmt 포맷 적용
- style: docs 포맷 수정 및 미사용 import 제거
- fix(desktop): 트레이 ↔ 메인 윈도우 IPC 동기화 제거로 macOS 데드락 해결
- fix(desktop): app.emit()을 전용 OS 스레드로 이동하여 macOS 데드락 해결
- fix: 인증서 생성/OpenSSL 동기 호출을 모두 spawn_blocking으로 이동
- fix: 모든 async Tauri 커맨드의 blocking I/O를 spawn_blocking으로 이동
- fix: update_client_certificate의 blocking I/O로 인한 데드락 해결
- fix: SettingsSection 배열 크기를 7로 수정
- docs: 미구현 기능 목록 업데이트 - No Gzip, Proxy Auth, Client SSL Cert 구현 완료 반영
- fix: 리뷰 반영 - gen_cert도 spawn_blocking으로 이동, 죽은 코드 제거, rcgen 테스트 추가
- fix: OpenSSL 컨텍스트 생성을 spawn_blocking + 캐시로 개선하여 async 데드락 해결
- fix: 리뷰 반영 - 인증서 로딩 함수 개선 및 런타임 변경 경고 추가
- feat: Client SSL Certificate (mTLS) 기능 추가
- fix: 리베이스 후 i18n 카탈로그 동기화 및 No Gzip 번역 추가
- fix: 프록시 인증 보안 이슈 수정 - CONNECT 터널 인증 우회 방지 및 Debug 마스킹 테스트
- feat: 프록시 인증(Proxy Authentication) 기능 추가
- feat: Quick Settings에 No Gzip 토글 기능 추가
- style: docs 파일 포맷 수정
- test: quick_settings 동시 읽기/쓰기 데드락 검증 테스트 추가
- fix: quick_settings를 tokio::sync::RwLock으로 변경하여 async 데드락 해결
- docs: 미구현 기능 목록 및 비교 문서 업데이트
- fix: i18n 카탈로그 라인 번호 동기화
- fix: 백엔드에서 빈 패턴 방어 로직 추가
- feat: TUI에 SSL Proxying 화이트리스트 설정 화면 추가
- feat: SSL Proxying 도메인 화이트리스트 기능 추가
- fix: 리뷰 반영 - 이벤트 기반 종료 및 spawn_blocking 적용
- refactor: tray 종료 로직을 graceful_quit 공통 함수로 추출
- style: App.tsx 포맷 수정
- feat: 자동 세션 저장/복원 기능 구현
- style: form-data 파서 및 뷰어 파일 포맷 수정
- fix: form-data 파서 방어 코드 개선
- feat: multipart/form-data 및 urlencoded 바디 뷰어 추가
- fix: PR 리뷰 반영 - toast i18n, curl 이스케이프, httpie # 문자 처리
- style: 코드 내보내기 테스트 파일 포맷 수정
- feat: 다양한 코드 내보내기 포맷 추가 (fetch, HTTPie, Python requests)
- style: tray-sync 테스트 파일 포맷 수정
- fix: 리뷰 반영 - emitTo로 윈도우 타겟팅, 초기 상태 동기화, 디바운스 추가
- style: docs/missing-features.md 포맷 수정
- fix: 트레이 패널 데드락 해결 - store 폴링을 Tauri 이벤트로 교체
- docs: 미구현 기능 목록 업데이트 - 이미 구현된 항목 반영
- fix: i18n 카탈로그 리베이스 후 동기화
- fix: i18n 카탈로그 ko/messages.po 따옴표 이스케이프 수정
- fix(i18n): 한국어 번역 이스케이프 따옴표 오류 수정
- fix: Breakpoint GUI 좌우 분할 레이아웃 + 한국어 번역 완료
- fix: i18n 카탈로그 리베이스 후 동기화
- fix: FSD 위반 수정 - AdvancedRepeatDialog를 widget에서 page 레벨로 이동
- fix: i18n 카탈로그 동기화
- style: oxfmt 포맷 적용
- fix: PR #131 리뷰 이슈 수정 (Advanced Repeat)
- feat: 고급 반복 (Advanced Repeat) 기능 추가
- test(proxy_daemon): Rewrite 규칙 단위 테스트 추가
- style: oxfmt 포맷 적용
- fix(proxy_daemon): Rewrite 규칙 리뷰 이슈 4건 수정
- feat(desktop): Rewrite 액션 타입 UI 추가
- feat(proxy_daemon): InterceptAction에 Rewrite 변형 추가
- fix: i18n 카탈로그 동기화
- style: oxfmt 포맷 적용
- fix: FSD 규칙 위반 수정 - widgets에서 features 직접 import 제거
- fix: Compose 요청 다이얼로그 리뷰 이슈 수정
- feat: HTTP 요청 작성(Compose) 기능 추가
- test: Quick Settings (No Caching / Block Cookies) 단위 테스트 추가
- fix: i18n 카탈로그 동기화
- style: oxfmt 포맷 적용
- fix: PR #128 리뷰 이슈 수정
- feat(tui): 빠른 설정(No Caching, Block Cookies) TUI 지원 추가
- feat(desktop): 빠른 설정(No Caching, Block Cookies) UI 추가
- feat(proxy_daemon): 빠른 설정(No Caching, Block Cookies) 백엔드 구현
ohah/ohah.github.io
- crd-write: 101차 크론 주기적 재확인 (2026-03-11 01:30 AM)
- docs: summarize 2026-03-10 activity
- docs: add update entry 100 for 4:30 PM cron run
- docs(cron): recheck 2026-03-10 15:30 - 전체 대상 .mdx 파일 검사 완료 상태 재확인
- CRON: 98차 맞춤법 검사 - 모든 대상 .mdx 파일 확인 완료
- crd: 30m cron periodic confirmation - 2026-03-10 1:30 PM
- chron: update crd-write cron log (2026-03-10 13:15)
- docs(cron): 95차 업데이트 - 2026-03-10 10:30 AM 크론 주기적 재확인 실행
- docs: 2026-03-10 10:00 크론 주기적 확인 - 전체 .mdx 파일 검사 완료 상태 재확인
ohah/rira
- test: add HiDPI/Retina regression tests for mouse hit testing
- fix: remove incorrect scale_factor conversion in mouse hit testing
- docs: update /pr command template to match code-rules.md
- style: fix cargo fmt formatting for title_bar_height line
- fix: mouse click uses scroll offset, add drag selection support
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.