2026-02-21

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

hwpjs는 머리말·꼬리말·각주·미주에서 중복되던 LIST_HEADER 처리를 공통 함수로 묶은 #6을 병합하고, 각주·미주마다 올바른 역참조 번호가 붙도록 고쳤습니다. HTML 표 출력은 캡션이 있을 때만 htG 래퍼를 쓰도록 fixture에 맞췄고(#9), 같은 문단의 절대 위치 표 순서와 htb 스타일, htG 높이까지 맞춘 #12도 병합했습니다. 이 과정에서 표 위치·크기·테두리와 줄 높이를 임의의 기본값이 아니라 파싱한 값이나 스펙에서만 가져오도록 정리하고 스냅샷을 갱신했습니다.

같은 날 genpdf로 PDF 내보내기를 시작해 본문 문단, 표와 이미지를 PDF로 그리고 toPdf NAPI와 to-pdf CLI를 붙였습니다. Base64와 디코딩된 이미지 크기에 상한을 두는 DoS 방어, 테스트용 Liberation Sans 폰트 번들이 #10으로 병합됐지만, to-pdf CLI와 일괄 PDF 옵션은 #11에서 주석 처리해 나중으로 미뤘습니다. 문서 디렉터리 이름을 docs에서 documents로 바꾸고, macOS에서 Linux x64·Windows용 네이티브 바이너리를 교차 빌드하는 설정과 안내를 추가했습니다. 각주·미주 공통 처리를 뽑아내는 #13은 이날 열렸습니다.

react-native-mcp는 CI E2E 기기를 지정하고 Android 에뮬레이터 해상도와 세로 방향을 고정한 #73을 병합했고, Android measureInWindow 좌표를 dp로 바꾸는 보정을 넣었다가 렌더 오버레이 위치가 어긋나 되돌리고 상단 inset으로 오버레이를 보정했습니다. 단계별 대기 시간과 작업 타임아웃을 늘려 E2E 35단계를 안정화했고(#74, #75), 채택 환경을 검사하는 doctor 명령과 Health HTTP 서버, 호환성·제한·리스크 문서를 추가했습니다(#76, #77). assertHasText 스텝은 assertText로 합치고 React state Hook 값을 검증하는 assert_state 도구를 추가했습니다(#78). E2E 화면 녹화 도구와 YAML 스텝을 넣는 #79는 이날 열렸습니다.

ohah.github.io에는 2월 21일 요약이 올라갔습니다.

공개 커밋 69개, 해당일 생성 또는 병합된 PR 13개를 정리했습니다. PR 생성 11개·병합 11개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/hwpjs

ohah/ohah.github.io

ohah/react-native-mcp

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/hwpjs#13생성mergedmainrefactor(core): extract common logic for footnote/endnote processing
ohah/hwpjs#12생성 · 병합mergedmainfeat(core): match table layout to fixture (table2 DOM order, htb style, htG height)
ohah/hwpjs#11생성 · 병합mergedmainchore(node): disable to-pdf CLI and batch pdf options, document for later
ohah/hwpjs#10생성 · 병합mergedmainfeat(core): bundle Liberation Sans for PDF tests and improve image handling
ohah/hwpjs#9생성 · 병합mergedmainfeat(core): align HTML table output with fixtures (htG only when caption)
ohah/hwpjs#6병합mergedmainrefactor(core): reduce duplicate LIST_HEADER logic in header/footer/footnote/endnote processing
ohah/react-native-mcp#79생성mergedmainfeat(server): E2E 화면 비디오 녹화 MCP 도구 및 YAML 스텝 추가
ohah/react-native-mcp#78생성 · 병합mergedmainE2E assertHasText 제거 및 assert_state MCP 도구 추가
ohah/react-native-mcp#77생성 · 병합mergedmain린트·포맷·doctor 테스트 수정
ohah/react-native-mcp#76생성 · 병합mergedmain상용 준비: Doctor, Health 서버, 문서, CI 보강
ohah/react-native-mcp#75생성 · 병합mergedmainfix(test): E2E Step 1 Count (Android) 실패 완화
ohah/react-native-mcp#74생성 · 병합mergedmainfix(test): E2E 전체 35 스텝 완화 및 CI E2E·타임아웃 정리
ohah/react-native-mcp#73병합mergedmainCI E2E 기기 지정 및 Android 해상도·방향 고정 / measure·fiber 수정