2026-03-17
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
터미널용 GitHub 클라이언트 ghtui가 이날 시작됐습니다. 첫 커밋 뒤 워크스페이스 구조·GitHub API·테마를 갖춘 MVP와 Phase 1부터 10까지의 로드맵을 올렸고, gh CLI 연동 다중 계정(#1), GitHub Actions CI(#2), Settings·Security·Insights 탭(#3, #4, #5)을 차례로 병합했습니다. Wiki·Projects 탭은 뺐습니다. Issues 탭은 필터·페이지 나눔·작성·댓글(#24)에서 시작해 인라인 편집기와 커서 이동·실행 취소, 멀티바이트 문자 백스페이스 크래시 수정, 검색·라벨·담당자·마일스톤 선택, 리액션과 타임라인, 잠금·고정(GraphQL), 이전·템플릿까지 넣어 Phase 1을 마쳤습니다(#44).
오후부터는 PR 탭(#48)을 만들고 diff 뷰를 git diff 형태로 다시 그린 뒤(#55) 줄 커서·블록 선택·파일 접기, 인라인 리뷰 댓글 표시와 작성, suggestion 렌더링, Commits 탭과 base 브랜치 변경, 파일 트리, Approve·Request Changes 액션 바를 붙였습니다. 일부 터미널에서 Ctrl+Enter가 먹지 않아 제출 키를 Ctrl+S로 바꿨습니다(#70). 이어 PR 생성·타임라인·리뷰어·병합 모달(#75), Draft 전환과 마일스톤, 자동 병합·연결된 이슈·파일 viewed 표시, 좌우 비교 diff(#83)로 Phase 2를 진행했고, Actions의 필터·ANSI 색 로그·워크플로 수동 실행·아티팩트·실시간 로그 스트리밍(Phase 3, #87부터 #90), 알림(Phase 4, #91), 검색(Phase 5, #94), 보안 알림 상세(Phase 6, #95), Insights의 Code Frequency·Forks(Phase 7, #96)까지 병합했습니다. 화면 확인용 테스트 PR #46, #50, #51, #52는 병합하지 않고 열어 뒀습니다.
hwpjs는 전날 연 HWP 문서 모델 변환 모듈(#150)을 병합하고, 컨트롤·도형 변환(#151)과 BinData 변환(#152), 새 Document 기반 Markdown·HTML viewer와 HWPX 스냅샷(#153)을 넣었습니다. 이후 새 viewer의 doc_to_markdown 결과를 기존 viewer와 맞추는 작업을 표 서식·하이퍼링크·개요 번호·글머리표·각주 위치·표 셀 병합 등으로 이어 가 HWP 픽스처 46개 기준 26개(#154), 42개(#155)를 거쳐 46개 모두 통과(#156)로 끌어올렸습니다. 이 중 10개는 기존 출력과 다르지만 새 viewer 쪽이 맞다고 분류한 결과입니다.
cheolsu-proxy는 네트워크 테이블 렌더링·컬럼 정렬 수정(#263), 데스크톱과 TUI의 브레이크포인트 수정 후 전달 UI(#264), 기본 바인딩 주소 0.0.0.0 변경(#265)을 병합했습니다. AI 트래픽 분석 MCP 도구(#266)와 데스크톱 대시보드·TUI 탭(#268, #269), GraphQL 뷰어(#267), gRPC 대시보드(#275)가 들어왔고, 코드 내보내기에 PowerShell·Node.js Fetch·k6·Playwright·Vitest 형식과 서버 TLS 인증서 상세 뷰, Vite 8 업그레이드(#270, #271)가 더해졌습니다. TLS 실패를 학습해 폴백하고 규칙을 런타임에 바꿀 수 있게 한 #272와 빠진 기능 문서 9개 추가(#273, #274)도 병합됐습니다.
gif2mp4는 WebCodecs MP4 변환을 복원하고 테스트를 보강했습니다. 블로그 저장소(ohah.github.io)에서는 맞춤법 점검 크론의 상태 갱신 커밋이 이어진 가운데, docs/index.mdx 띄어쓰기 한 곳을 고쳤고, 수동으로 12월에서 1월 초까지의 오늘의 커밋과 3월 14일 보완, 월간 오픈소스 타임라인과 hwpjs·craby 글, CRD 개발 과정 글 전면 재작성을 올렸습니다.
공개 커밋 225개, 해당일 생성 또는 병합된 PR 105개를 정리했습니다. PR 생성 104개·병합 101개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/cheolsu-proxy
- refactor: formatTime/formatDuration 공유 유틸로 추출 — 8개 파일 중복 제거
- fix: i18n 카탈로그 줄 번호 참조 업데이트
- fix: oxfmt 포맷 수정
- fix: biome 포맷 수정 — 문서 및 프론트엔드 파일
- refactor: simplify 리뷰 반영 — 중복 제거 및 타입 정리
- feat: gRPC 대시보드 구현 — 프론트엔드 전용 gRPC 트래픽 뷰어
- docs: 리뷰 반영 — TUI 섹션 추가, gRPC 문서, 로드맵 업데이트
- docs: 누락된 기능 문서 9개 추가 및 사이드바/로드맵 업데이트
- fix: i18n 카탈로그 줄 번호 참조 업데이트
- fix: oxfmt 포맷 수정 및 jamf.payhere.in 테스트 제거
- refactor: simplify 리뷰 반영 — 코드 품질 및 효율성 개선
- refactor: SharedTlsConfig을 Arc<RwLock>으로 변경하여 런타임 규칙 수정 가능하게
- feat: TLS 학습 기반 폴백 및 설정 동적 관리 추가
- chore(desktop): Vite 8 업그레이드
- feat(desktop): k6, Playwright, Vitest 코드 내보내기 추가
- test: 코드 내보내기 및 TLS 인증서 뷰 테스트 추가
- refactor: 리뷰 피드백 반영 — 인증서 파싱 중복 제거 및 구조 정리
- feat: 서버 TLS 인증서 상세 뷰 추가 (백엔드 + 프론트엔드)
- feat(desktop): PowerShell, Node.js Fetch 코드 내보내기 추가
- feat(tui): AI 트래픽 분석 탭 구현
- fix: oxlint ++ 연산자 에러 수정
- fix: i18n 누락 한국어 번역 추가 및 rebase 충돌 해결
- feat(desktop): AI 트래픽 분석 대시보드 구현
- fix: i18n 카탈로그 줄 번호 참조 업데이트
- style: GraphQL 뷰어 코드 포맷팅 수정
- fix: GraphQL 쿼리 주석 파싱 개선 및 테스트 코드 추가
- feat: GraphQL 전용 뷰어/대시보드 기능 구현
- fix: AI 트래픽 분석 코드 리뷰 피드백 반영 및 테스트 추가
- feat: AI 트래픽 분석 기능 구현
- fix: 프록시 기본 바인딩 주소를 0.0.0.0으로 변경
- fix(tui): 브레이크포인트 편집 폼에서 Shift+Enter로 개행 입력 지원
- feat(tui): 브레이크포인트 수정 후 전달(modify_and_forward) TUI 구현
- fix(desktop): 브레이크포인트 편집 다이얼로그 리뷰 피드백 반영
- style(desktop): 브레이크포인트 수정 후 전달 UI 한국어 번역 추가
- feat(desktop): 브레이크포인트 수정 후 전달(modify_and_forward) UI 구현
- fix(desktop): 네트워크 테이블 헤더-행 간 컬럼 정렬 불일치 수정
- fix(desktop): 네트워크 탭 전환 시 가상화 테이블 렌더링 안 되는 문제 수정
ohah/ghtui
- Phase 7: Insights complete (Code Frequency + Forks)
- Phase 6: Security detail panel
- Apply /simplify review: fix Unicode truncation, dual highlight, route dup
- Phase 5: Search complete
- Update ROADMAP with user feedback
- Fix: Add missing action keybindings (cancel/rerun/action bar focus)
- Apply /simplify review: fix grouped index, clamp selected, add toast
- Phase 4: Notifications complete
- Phase 3-4: Realtime log streaming, ROADMAP update
- Apply /simplify review: fix deployment duplication, redirect, dead code
- Phase 3-3: Workflow dispatch, artifacts, environment approval
- Apply /simplify review: refactor action detail
- Phase 3-2: ANSI color logs, step fold/unfold, action bar
- Phase 3-1: Actions filter UI, pagination, search
- Add PR body reactions display
- Fix branch direction (base ← head), table unicode width
- Fix conversation auto-scroll, add commits navigation
- Phase 2-7: Side-by-side diff mode
- ROADMAP: Phase 2-6 complete
- Add auto-merge toggle, linked issues display, and file viewed tracking
- Phase 2-5: Draft toggle (GraphQL), Milestone picker, ROADMAP
- Fix 422 error when submitting review comment
- PR comment reactions, suggestion with code, ROADMAP update
- Fix timeline parsing, add PR-specific events
- Replace modal popup with fullscreen editor for text input
- Phase 2-4: PR creation, timeline, reviewers, merge modal
- Update ROADMAP (Phase 2 complete), fix conversation scroll clamping
- Enhanced markdown: tables, links, strikethrough, tasks; CI in conversation
- Fix remaining Ctrl+Enter hint text → Ctrl+S
- Fix comment UI not updating, block global keys during editing
- Change submit key to Ctrl+S (reliable across all terminals)
- Action bar shortcut labels, editor buttons, reviewer dedup, ROADMAP
- Action bar keyboard nav, unicode box fix, show on Files changed
- Add action bar, Approve/Request Changes, fix review comment box
- Fix file tree toggle key conflict: t → f
- Add file tree view in Files changed tab, tab count badges
- Fix Ctrl+Enter submit not working in some terminals
- Fix diff comment box: full rectangle, correct colors
- Add Commits tab, rename tabs to match GitHub, add base branch change
- Full rectangle box for review comments, suggestion insert support
- Fix diff box drawing chars, add suggestion rendering, fix editor newline
- Add inline review comment editor in diff view
- Add h/l arrow keys for diff file fold/unfold
- Show inline review comments in diff view
- Add diff line cursor, block selection, and file fold/unfold
- Redesign diff view with theme colors and git-diff style UI
- Fix PR diff not loading due to race condition
- Fix Checks tab (fetch real data) and Diff tab scroll
- Brighten tab bar and section header colors, update ROADMAP
- Implement PR tab with full list/detail features matching Issues tab
- Fix PullRequest deserialization for GitHub API nested head/base refs
- Update ROADMAP.md with complete Issues Phase 1 and current state
- Complete Issues Phase 1: filters, transfer, templates
- Show pinned issues as cards at top like GitHub web UI
- Sort pinned issues to top of list like GitHub web
- Show pinned issues with 📌 icon in issue list
- Add GraphQL support, issue pin/unpin via pinIssue mutation
- Add sort cycling, issue lock/unlock, locked indicator
- Fix issue search infinite loading
- Add reactions, milestone picker, timeline events
- Add section focus, comment delete, assignee picker, close/reopen, browser open
- Add issue search and label picker
- Add validation toasts for empty input on all edit/comment operations
- Wire all TextEditor keybindings: word move, delete, tab, undo/redo
- Extract reusable EditorView/InlineEditorView widgets, extend TextEditor
- Fix issue title/body not refreshing after edit
- Fix editor crash on backspace with multibyte characters
- Add TextEditor with cursor tracking, arrow key navigation
- Differentiate title/body/comment editing UX
- Replace modal editing with inline textarea for issues
- Fix markdown colors for dark theme readability
- Add issue/comment editing, quote reply, comment navigation
- Implement Issues Phase 1: filters, pagination, create, comments
- Update ROADMAP: remove Wiki/Projects, reflect completed features
- Add log scroll, mouse click for tabs and list items
- Add Action Detail job selection and mouse scroll support
- Fix list Enter navigation not fetching detail data
- Fix sub-tab overflow to navigate to adjacent global tabs
- Fix sub-tab navigation to wrap around at boundaries
- Remove Wiki and Projects tabs from UI
- Implement Insights tab with contributors, commit activity, traffic
- Implement Security tab with Dependabot, Code Scanning, Secret Scanning
- Implement Settings tab with repo info, branch protection, collaborators
- Add GitHub Actions CI and fix lint warnings
- Merge pull request #1 from ohah/feat/multi-account
- Add comprehensive tests for multi-account support
- Add multi-account support with gh CLI integration
- Apply rustfmt/clippy, add editor settings, update roadmap with full feature gaps
- Add /pr slash command for Claude Code
- Add project roadmap with Phase 1-10 implementation plan
- Implement MVP: workspace structure, GitHub API, TUI with theme support
- Initial commit
ohah/gif2mp4
ohah/hwpjs
- feat: RectObject.is_caption + HWPX JSON 스냅샷 업데이트
- feat: RectObject.is_caption 모델 필드 추가
- refactor: Object/Text Paragraph 분리 시도 → 되돌림
- feat: Object-Text 재배치 + table-bug NEW_CORRECT → 46/46 전체 통과
- feat: Object-Text 재배치 + Run 간 구분자 → table-position 통과 (45/46)
- feat: treat_as_char 완전 필터 + 디버그 정리
- feat: treat_as_char 도형 ListHeader 필터 + distribution NEW_CORRECT (44/46)
- feat: TABLE 셀 중복 Rectangle 필터링 + treat_as_char 기반
- feat: render_table row_span 처리 구현 (table-bug 219→215)
- feat: assemble_runs CharShape position clean text 변환 (table-bug 개선)
- feat: 표 앞 Object 구분자 개선 + Rectangle trailing 정리
- refactor: convert_paragraph Vec<Paragraph> 반환 + Rectangle trim_end
- refactor: Rectangle 내부 문단 trailing trim_end 개선
- feat: 표 앞 Object 구분자 개선 + Rectangle trailing 정리
- feat: 멀티라인 body trailing 정리 + multicolumns-in-common NEW_CORRECT
- feat: multicolumns-in-common NEW_CORRECT 추가 (42/46)
- feat: TABLE ctrl_paragraphs 캡션 처리 + Outline 기본 형식 (41/46)
- feat: Outline 기본 형식 사용 + lists 통과 (41/46)
- feat: NEW_VIEWER_CORRECT 확장 + 이미지/텍스트 순서 개선 (40/46)
- feat: NEW_VIEWER_CORRECT 분류 추가 (37/46 통과)
- feat: 필드 경계 오류 감지로 issue144 통과 (34/46)
- feat: 표 셀 col_span 빈 셀 추가 + Rectangle 스타일 강제
- feat: 하이퍼링크 빈 셀 <br> 처리 (software 4→1)
- feat: Rectangle 내부 스타일 강제 적용 + 디버그 테스트 정리
- feat: 표 셀 Object 빈 셀 <br> 처리 + trailing space 보존
- feat: 표 셀 하이퍼링크 완전 제거 + SubList 정리
- feat: has_char_shapes 기반 trim/스타일 분기 + Rectangle soft line break (33/46)
- feat: 표 셀 하이퍼링크 제거 + leading space 보존 + 스타일 스킵
- feat: 단일 Run 문단 스타일 스킵 + convert_table_object 리팩토링
- refactor: convert_table_object를 Vec<RunContent> 반환으로 리팩토링
- feat: Number 타입 numbering_id별 독립 카운터 + section outline ID
- feat: Numbering format_string 지원 + id_ref 인코딩 수정
- feat: Numbering format_string 지원 + id_ref 인코딩 수정
- feat: 각주/미주 참조 위치 수정 + footnote-endnote 통과 (30/46)
- feat: SubList 이미지 제거 + 각주/미주 문단 body 생략 (29/46)
- feat: convert 도형 수집 개선 + viewer 구분선/텍스트박스 수정 (28/46)
- style: clippy 수정 — unused import 제거
- docs: viewer-architecture 스펙 문서 업데이트
- refactor: 표 셀 bold 제거 + <br> 후 공백 추가
- feat: 탭 중복 제거 + 본문 trim + tabdef/selfintroduce 통과 (26/46)
- feat: 본문 텍스트 trim + multicolumns/selfintroduce 통과 (25/46)
- feat: 글머리표/번호 목록 + 개요 번호 확장 (23/46 통과)
- feat: 개요 번호 트래커 구현 (22/46 통과)
- feat: 섹션 간 구분선 + SubList 탭 제거 + trailing space 유지 (21/46)
- feat: 도형 변환 안정화 + 텍스트박스 ShapeComponent 탐색 (21/46)
- feat: 표 셀 포맷 + trailing space + multicolumns 수정 (21/46)
- feat: convert에 도형/그림 변환 추가 (gso → ShapeObject)
- feat: 표 포맷 통일 + 하이퍼링크 + FieldEnd 변환 (21/46 통과)
- feat: doc_to_markdown 기존 viewer 동등성 향상 (18/46 통과)
- style: clippy 수정 — 불필요한 use serde_json 제거
- style: clippy 수정 — map_or(false) → is_some_and
- refactor: 코드 리뷰 반영 — 중복 제거, ImageFormat 통일, font 이스케이핑
- feat: HWPX 스냅샷 인프라 + JSON/MD/HTML 스냅샷 생성
- feat: Document 기반 Markdown/HTML viewer 추가
- feat: hwp-model 전체 타입에 Serialize/Deserialize 추가
- style: cargo fmt 적용
- feat: convert_binaries 구현 — HwpDocument BinData → Document BinaryStore 변환
- style: cargo fmt 적용
- refactor: 코드 리뷰 반영 - 중복 제거, dead code 제거, 상수 사용
- feat: Resources 완성 + CtrlHeader → Control/ShapeObject 변환 구현
- docs: 로드맵 상태 업데이트 (1-3 완료, 1-4 진행중)
- fix: clippy logic bug 수정 (|| true 제거)
- feat: section.rs 변환 구현 - ParagraphRecord → Run 트리 조립 + 테스트 16개
- refactor: COLORREF에 to_rgb() 메서드 추가, .0 접근 제거
- feat: HwpDocument → Document 변환 (Resources 완성 + 테스트 8개)
- wip: HwpDocument → Document 변환 모듈 초기 구조
ohah/ohah.github.io
- 2026-03-18 07:35 - CRD 주기적 재확인 실행: 모든 대상 mdx 파일 검사 완료 상태 확인, 수정 불필요
- CRD: Update checklist status - all files checked
- cron: 2026-03-18 6:00 AM CRD 재확인 완료 - 모든 mdx 파일 검사 완료
- docs: CRD 주기적 실행 - 모든 mdx 파일의 맞춤법 교정 완료 상태 확인 [271]
- CRD: 270차 업데이트 2026-03-18 5:00AM - 전체 mdx 파일 검사 완료 확인
- chore: CRD 269차 업데이트 - 2026-03-18 4:30 AM
- docs: CRD 개발 과정 글 전면 재작성 + 12월 today-commit 보완 + 3/9 업데이트
- docs: 오늘의 커밋 12월~1월 초 추가, 3월 14일 보완, 월간 오픈소스 타임라인 및 hwpjs/craby 글 추가
- CRD: 대상 mdx 파일 모두 체크 완료 확인 (2026-03-18, KR)
- cron: crd 267 - all 27 files already checked, updated status
- docs: update CRON_CRD_WRITE.md - check-only (2026-03-18)
- 2026-03-18 01:34 - CRD 주기적 실행: 전체 대상 파일 검사 완료 상태 재확인
- cron: CRD 264 - all .mdx files already checked, lint pass
- docs: CRD cron run - all files already checked [263]
- docs: update today commit summary for 2026-03-17
- cron-crd: reconfirm all mdx files are already checked (no spelling/typo issues found)
- cron: update CRD write check - all files already complete
- CRD: 260-th update - 2026-03-17 11:00 PM
- docs: CRD 주기적 재확인 (2026-03-17 10:30 PM)
- docs: CRD 재확인 실행 - 모든 파일 검사 완료 [258]
- [CRON] Update 2026-03-17 7:30 PM - Spell-check reconfirmation
- docs: CRD cron check - no spelling corrections needed (all files already checked) [blog-crd-write]
- cron: correct spacing in docs/index.mdx (#254)
- [CRON] 254차 업데이트: 2026-03-17 2:00 PM - CRD 상태 재확인
- docs: CRD periodic check 253 - all mdx files already checked
- docs: CRD 주기적 실행 로그 추가 (docs/index.mdx 검사 완료)
- docs: CRD daily check - all targets complete
- chore: CRD cron update - 2026-03-17 9:30 AM
- CRON: 2026-03-17 9:00 AM - All files already spell-checked
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.