2026-06-22

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

요약 (AI 작성)

maru는 하루 131개 커밋으로 세팅 화면과 설정 항목을 크게 채웠습니다. 전날 열린 세팅 폼 검색 #836과 리셋 위임 #835를 병합한 뒤 env 변수 삭제와 단축키 해제, 섹션을 넘나드는 검색과 단축키 충돌 경고, SV 그리드와 hue 띠로 임의 색을 고르는 HSV picker(#841)를 넣었고, picker는 Shift 미세 조정, 셀 사이 포인터 선택, hex 입력, 화면 색 추출까지 이어졌습니다. Reset to Defaults는 두 리셋을 하나로 합치고 확인 모달을 붙인 뒤 config 파일 삭제 대신 기본 상태를 atomic write로 덮어쓰도록 바꿨습니다. 테마 프리셋은 맨 위에 두고 활성 시 색을 잠그며 16색 팔레트까지 영속하게 했고, 섹션 키보드 이동, 모달 크기 고정, 선택 행 위젯 가림 수정이 이어졌습니다. 글로벌 핫키 설정 섹션과 변경 즉시 OS 재등록(#914, #917), 기존 chord를 자동으로 해제하는 키바인드 재바인딩도 들어왔습니다.

설정 항목으로는 창 투명도 window.opacity(#843), 커서 깜빡임 주기와 포커스 잃을 때의 커서 모양, 휠 스크롤 배수, URL 클릭 수식키, 타이핑 중 마우스 숨김, 폴백 폰트 font.fallback(#856), 비활성 pane 디밍, input.option-as-meta(#866), 우클릭 동작, OSC 52 읽기 정책, 단어 구분자, 시각 벨과 Dock 배지(#882), bold·italic 폰트 패밀리와 italic 렌더(#884), 시스템 라이트·다크 자동 전환(#887), 배경 이미지와 파일 선택창(#889), 배경 블러(#892)가 추가됐습니다. pane을 사이드바로 끌어 워크스페이스를 나누거나 합치는 grip 핸들(#871)과 move_pane_to_workspace 키 동작도 생겼습니다. 알림은 클릭하면 보낸 터미널로 이동하고(#885), 사이드바 종 아이콘의 인앱 알림 센터(#895)에 읽음·지우기, 배너와의 읽음 동기화, 스크롤, 말풍선 팝오버(#937)를 더했으며, 이를 위해 모달 오버레이의 픽셀 클리핑 인프라(#923)를 넣었습니다.

안정성 쪽에서는 스크롤백을 화면마다 별도 Scrollback 구조체로 나눠 alt screen에 스크롤바가 남던 문제를 해결하고(#850), scrollback.lines를 줄이면 즉시 잘라 내며 좌표를 보정했고, glyph baseline을 정수 픽셀에 맞춰 글자가 흔들리지 않게 했습니다. macOS 번들에 CLI를 넣어 Install CLI 실패를 고쳤고, 버그 점검에서 나온 기능 결함과 문서 불일치를 일괄 수정했으며, 테스트가 실제 config를 덮어쓰지 못하게 막았습니다. 마지막으로 core.zig를 나누는 계획을 문서로 정하고 OSC 응답, 스크롤백 ring, DCS·OSC 라우터, kitty graphics 파싱, 탭스톱·dirty 추적·charset을 osc.zig·parser.zig·screen.zig로 옮기는 분할 10단계(#930부터 #942까지)를 진행했습니다.

zntc는 test262 lexer 중복을 없애고 벤치마크를 ubuntu에서만 돌리며 문서 PR은 건너뛰게 해 CI 잡 수를 줄였습니다(#4461). 블로그 저장소에는 오늘의 커밋 요약 커밋들과 맞춤법 수정이 올라갔습니다.

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

커밋

ohah/maru

ohah/ohah.github.io

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#942생성 · 병합mergedmainrefactor(terminal): G3 charset·이모지 폭 헬퍼를 screen.zig로 (core.zig 분할 10/N)
ohah/maru#941생성 · 병합mergedmainrefactor(terminal): dirty 영역 추적을 screen.zig로 (core.zig 분할 9/N)
ohah/maru#940생성 · 병합mergedmainrefactor(terminal): G4 동적 탭스톱을 screen.zig로 (core.zig 분할 8/N — Phase B 시작)
ohah/maru#939생성 · 병합mergedmainrefactor(terminal): APC kitty graphics 파싱·라우팅을 parser.zig로 (core.zig 분할 7/N — Phase A 완료)
ohah/maru#938생성 · 병합mergedmainrefactor(terminal): OSC 라우터 dispatchOsc를 parser.zig로 (core.zig 분할 6/N)
ohah/maru#937생성 · 병합mergedmainfeat(notification): 알림 팝업 말풍선 팝오버 — 벨 정렬·anchor·최소높이·GPU 삼각형 caret
ohah/maru#936생성 · 병합mergedmainrefactor(terminal): DCS(DECRQSS·XTGETTCAP)를 parser.zig로 (core.zig 분할 5/N — parser 시작)
ohah/maru#935생성 · 병합mergedmaintest,fix(platform): config 쓰기 경로에 테스트 안전 chokepoint — 실 config 덮어쓰기 원천 차단 (리뷰 #14)
ohah/maru#934생성 · 병합mergedmainfix(platform): 메뉴바 catalog-dirty 신호 — reset·인앱·멀티창 keyEquivalent 갱신 (#929 후속, ABI v85)
ohah/maru#933생성 · 병합mergedmainrefactor(terminal): 스크롤백 ring(Scrollback)을 screen.zig로 (core.zig 분할 4/N — storage)
ohah/maru#932생성 · 병합mergedmainrefactor(terminal): OSC hyperlink·cwd·maru·semantic-prompt(8/7/5379/133)를 osc.zig로 (core.zig 분할 3/N)
ohah/maru#931생성 · 병합mergedmainrefactor(terminal): OSC clipboard·notify(52/9/777)를 osc.zig로 (core.zig 분할 2/N)
ohah/maru#930생성 · 병합mergedmainrefactor(terminal): OSC 색·팔레트 host-reply를 osc.zig로 분리 (core.zig 분할 1/N)
ohah/maru#929생성 · 병합mergedmainfix: reload/reset 메뉴바 단축키 갱신 + Reset이 keybind 초기화 + 테스트 실-config 덮어쓰기 차단
ohah/maru#928생성 · 병합mergedmainfix: 버그헌트·/code-review max 결함 수정 + 문서 정합성 동기 (구조 리팩터 제외)
ohah/maru#927생성 · 병합mergedmainfeat(render): atlas 보이는-ink 세로 중앙 정렬 — 헤더 알림 벨 폰트-독립 정렬
ohah/maru#926생성 · 병합mergedmainfix(settings): reloadConfig arena UAF + serializeConfig errdefer 누수 (리뷰)
ohah/maru#925생성 · 병합mergedmaindocs(notifications,layering): 모달 클리핑 인프라 + 알림 픽셀 스크롤 백로그 기록
ohah/maru#924생성 · 병합mergedmainfix(settings): 재바인딩 시 stale unbind 줄 정리 — config 위생 (키바인드 후속)
ohah/maru#923생성 · 병합mergedmainfeat(render): 모달 오버레이 px 클리핑 인프라 — draw.Op.clip → MetalFrame.modal_clip → scissor (ABI v84)
ohah/maru#922생성 · 병합mergedmain헤더 알림 벨 이모지 세로 보정 과대 수정 (0.55→0.40ch)
ohah/maru#921생성 · 병합mergedmainfeat(settings): 키바인드 재바인딩 완전 교체 — 빌트인 chord 자동 unbind (키바인드 완전 교체)
ohah/maru#920생성 · 병합mergedmain헤더 알림 벨 아이콘을 우측 그룹과 균일 간격으로 정렬
ohah/maru#919생성 · 병합mergedmainfeat(settings): HSV picker 스포이드 — i 로 NSColorSampler 화면 색 추출 (picker 후속·v83)
ohah/maru#918생성 · 병합mergedmainrefactor(chrome): 오버레이 스크롤 후속 — 윈도잉 헬퍼 통합·휠 효율·모달 휠 게이트
ohah/maru#917생성 · 병합mergedmain글로벌 핫키 변경 즉시 OS 재등록 — 라이브 반영 (PR2, ABI 82)
ohah/maru#916생성 · 병합mergedmainfeat(settings): HSV picker hex 인라인 편집 — # 로 정확한 hex 타이핑 (picker 후속)
ohah/maru#915생성 · 병합mergedmainfeat(settings): HSV picker SV 그리드 sub-cell 포인터 — 연속 s/v (picker 후속)
ohah/maru#914생성 · 병합mergedmain글로벌 핫키 세팅 섹션 추가 (PR1 — 캡처+write-back, 재시작 후 적용)
ohah/maru#913생성 · 병합mergedmainfeat(notification): 알림 센터 패널 스크롤 — 화면 넘는 카드 카드단위 + 스크롤바
ohah/maru#912생성 · 병합mergedmainfeat(settings): HSV picker 연속 해상도 — Shift 미세 조정 (picker 고급화)
ohah/maru#911생성 · 병합mergedmainfeat(theme): 테마 프리셋 전체 영속 — theme.preset 키로 16색 팔레트까지 (팔레트 영속)
ohah/maru#910생성 · 병합mergedmainpane grip 세로 가운데(tui 패딩) + 헤더 벨 hover 하이라이트 정렬
ohah/maru#909생성 · 병합mergedmainrefactor(notification): 읽음 동기화 단일 정책(카드=배너) + mark 헬퍼 정리
ohah/maru#908생성 · 병합mergedmainfeat(settings): 배경 이미지 파일 선택창 — 경로 타이핑 대신 NSOpenPanel (v81)
ohah/maru#907생성 · 병합mergedmain모달 외곽선(별도 테두리 op) 제거 — tui는 박스 배경만
ohah/maru#906생성 · 병합mergedmainfeat(notification): 배너↔센터 읽음 동기화 + 배지 9+
ohah/maru#905생성 · 병합mergedmainfeat(notification): 알림 설정 — notifications.osc·history-limit config
ohah/maru#904생성 · 병합mergedmaintui 모달 외곽선을 강조 테두리→은은한 divider 선으로 (표 경계선 스타일)
ohah/maru#903생성 · 병합mergedmainfix(bell): 배경 pane/탭의 BEL도 drain — Dock 배지·시각·소리 (리뷰 D)
ohah/maru#902생성 · 병합mergedmainfix(macos): New Window·quick 세션 초기 시스템 외관 적용 (리뷰 B)
ohah/maru#901생성 · 병합mergedmainfix(settings): follow-system 켜지면 theme.preset 행 숨김 (리뷰 C)
ohah/maru#900생성 · 병합mergedmainfeat(notification): 알림 읽음/지우기 — 카드 ✕·하단 액션 행·Backspace
ohah/maru#899생성 · 병합mergedmainrefactor(width): UTF-8 경계 절단/백스페이스 단일 출처화 — 6중복 통합 (리뷰 A)
ohah/maru#898생성 · 병합mergedmainfix(settings): follow-system 중 preset 변경 라이브 적용 + 잠금 복원 (F2-9 리뷰 라운드2)
ohah/maru#897생성 · 병합mergedmainfix(notification): 알림 종 아이콘 정렬 + 패널 위치·크기 개선
ohah/maru#896생성 · 병합mergedmainfix(settings): /code-review max 반영 — follow-system 토글·word-separators 잘림 (F2-9·F2-8)
ohah/maru#895생성 · 병합mergedmainfeat(notification): 인앱 알림 센터 — 사이드바 종 아이콘 + 알림 목록 패널 (2단계)
ohah/maru#894생성 · 병합mergedmain세팅 모달/녹음 중 ⌘조합 단축키 누수·chord 녹음 실패 수정
ohah/maru#893생성 · 병합mergedmain세팅 Tab 힌트를 제목 아래(상단)로 이동
ohah/maru#892생성 · 병합mergedmainfeat(platform): 세팅 창 뒤 배경 블러 — window.blur (CGS, F3-1)
ohah/maru#891생성 · 병합mergedmain세팅 Tab 표시 세련화 — 세로 바(경계선처럼 보임) 제거, 힌트 중앙·활성 영역 강조
ohah/maru#890생성 · 병합mergedmain세팅 Tab 영역 전환 표시 — 활성 영역 세로 바 + 비활성 dim + 하단 힌트
ohah/maru#889생성 · 병합mergedmainfeat(chrome): 세팅 배경 이미지 — window.background-image PNG (F2-1)
ohah/maru#888생성 · 병합mergedmain세팅 키보드 섹션 네비도 필드 수 재주입 — 입력 섹션 ↓가 우클릭 행에서 멈추던 버그
ohah/maru#887생성 · 병합mergedmainfeat(theme): theme.follow-system — 시스템 라이트/다크 테마 자동 전환 (F2-9)
ohah/maru#886생성 · 병합mergedmain모달 중 터미널 포커스 완전 상실(커서 hollow+blink 정지) + 세팅 모달 FullHeight 고정
ohah/maru#885생성 · 병합mergedmainfeat(notification): 알림 클릭 시 발신 터미널로 자동 활성화 (창+탭+pane+term)
ohah/maru#884생성 · 병합mergedmainfeat(font): font.family-bold/family-italic — bold·italic 폰트 패밀리 + italic 렌더 (F2-3)
ohah/maru#883생성 · 병합mergedmain세팅 폰트 크기 슬라이더 범위를 [6,72]로 — '+' 누르면 화면이 grid 붕괴로 사라지던 버그
ohah/maru#882생성 · 병합mergedmainfeat(bell): bell.visual + bell.dock-badge — 시각 벨·Dock 배지 (F2-4)
ohah/maru#881생성 · 병합mergedmain세팅·confirm 모달 z-order 겹침 수정 + 브랜치 글리프 fallback 제거(├)
ohah/maru#880생성 · 병합mergedmainfeat(input): input.word-separators — 더블클릭 단어 구분자 (F2-8)
ohah/maru#879생성 · 병합mergedmaindocs+test: grip 문서 정합(#875 누락) + 글리프 중앙 배치 테스트(code-review max)
ohah/maru#878생성 · 병합mergedmain에이전트 아이콘 1.1× 확대를 gutter col 0로 한정 — 텍스트 ◆/✶ over-scale 수정 (#874 후속)
ohah/maru#877생성 · 병합mergedmainfeat(chrome): move_pane_to_workspace:N — pane을 N번 워크스페이스에 합치기(merge 키보드)
ohah/maru#876생성 · 병합mergedmainfeat(terminal): osc52.read — OSC 52 클립보드 읽기 정책 allow|deny (F2-6)
ohah/maru#875생성 · 병합mergedmainfeat(chrome): pane grip 양쪽 패딩 + 호버 grab(openHand) 커서
ohah/maru#874생성 · 병합mergedmain에이전트 아이콘 fallback '정' 깨짐 근본 수정 — 폰트 보유 글리프(✶·◆)로 교체
ohah/maru#873생성 · 병합mergedmainfeat(input): input.right-click — 터미널 우클릭 동작 paste|menu|reporting (F2-5)
ohah/maru#872생성 · 병합mergedmaincode-review 후속 — 사이드바 clamp 크래시·근본화 + 하이라이트 over-clear 제거
ohah/maru#871생성 · 병합mergedmainfeat(chrome): Pane을 사이드바로 드래그해 워크스페이스 분리·합치기 + grip 핸들
ohah/maru#870생성 · 병합mergedmainfix(macos-smoke): verifyCloseLifecycle에 io 인자 전달 — pty-metal-smoke 컴파일 복구
ohah/maru#869생성 · 병합mergedmainfix: /code-review max 후속 — 세션 3개 PR 결함 수정 (컴파일·포커스 redraw·장식선 디밍)
ohah/maru#868생성 · 병합mergedmain사이드바 최소 너비를 헤더 아이콘 기반 동적 클램프로
ohah/maru#867생성 · 병합mergedmain선택 행 slider/toggle 위젯 가림 수정 — control 칸 비움 (#863 보강)
ohah/maru#866생성 · 병합mergedmainfeat(input): input.option-as-meta — Option을 Meta(Alt)로 토글 (F2-2)
ohah/maru#865생성 · 병합mergedmain세팅 좌측 섹션 네비 키보드 이동 (Tab/↑↓)
ohah/maru#864생성 · 병합mergedmainfeat(window): window.unfocused-dim — 비활성 split pane 디밍 (F2-7)
ohah/maru#863생성 · 병합mergedmainrich 세팅 모달 선택 행 위젯이 하이라이트에 가려지는 문제 수정
ohah/maru#862생성 · 병합mergedmainfeat(cursor): cursor.unfocused — 창 포커스 잃을 때 block/hollow/hidden (F1-4b-2)
ohah/maru#861생성 · 병합mergedmaindropdown chevron 폭 예약 + 라벨 reserve 상향 (#860 후속)
ohah/maru#860생성 · 병합mergedmain세팅 모달 고정 너비 + rich 테마 깨짐(콘텐츠 넘침) 수정
ohah/maru#859생성 · 병합mergedmainfix(terminal): 하향 트림 좌표 보정을 활성 화면으로 한정 + dirty 정밀화·dedup·OOM 일관성
ohah/maru#858생성 · 병합mergedmaindocs(settings): scroll.on-output을 이미 구현(viewport pin)으로 정정 (F1-10)
ohah/maru#857생성 · 병합mergedmaindocs(macos): font.fallback cascade 명확화 주석 — bold 상속·per-shape 비용 (code-review max)
ohah/maru#856생성 · 병합mergedmainfeat(config): 폴백 폰트 font.fallback — CoreText cascade list (F1-2)
ohah/maru#855생성 · 병합mergedmainfeat(terminal): scrollback.lines 하향 시 즉시 트림 + abs 좌표 보정
ohah/maru#854생성 · 병합mergedmain세팅 테마 프리셋 최상단·사용자 지정 순환·활성 시 색 잠금
ohah/maru#853생성 · 병합mergedmainfix(macos): mouse-hide-while-typing를 IME 확정 경로로 — 실제 타이핑에 동작 (code-review max)
ohah/maru#852생성 · 병합mergedmainfeat(config): 타이핑 중 마우스 숨김 input.mouse-hide-while-typing (F1-6)
ohah/maru#851생성 · 병합mergedmaindocs(config): scroll.multiplier가 트래킹 앱에도 적용됨을 명시 — Ghostty 베이스
ohah/maru#850생성 · 병합mergedmainrefactor(terminal): 스크롤백을 화면당 Scrollback 구조체로 분리 — alt 스크롤바 잔존 근본 해결
ohah/maru#849생성 · 병합mergedmainfix(chrome): HSV picker hue 셀↔값 가역화 — '['/']' stuck·마커 어긋남 (code-review max #1)
ohah/maru#848생성 · 병합mergedmainfeat(config): URL 클릭 수식키 input.url-click-modifier (F1-5)
ohah/maru#847생성 · 병합mergedmainfeat(config): 휠 스크롤 배수 scroll.multiplier (F1-10-1)
ohah/maru#846생성 · 병합mergedmainmacOS 번들에 maru CLI 포함 — Install CLI 실패 수정
ohah/maru#845생성 · 병합mergedmainfeat(config): 커서 깜빡임 주기 cursor.blink-interval-ms (F1-4b-1)
ohah/maru#844생성 · 병합mergedmainReset to Defaults를 config 파일 삭제 대신 기본 상태로 덮어쓰기
ohah/maru#843생성 · 병합mergedmainfeat(config): 창 배경 투명도 window.opacity — clear color alpha (F1-1)
ohah/maru#842생성 · 병합mergedmainfix(macos): 글리프 baseline 정수 픽셀 스냅 — 행간/크기별 v·w 흔들림 제거
ohah/maru#841생성 · 병합mergedmainfeat(chrome): 세팅 HSV 색 picker — SV 그리드+hue 스트립, 임의 색 선택 (CS-4-6)
ohah/maru#840생성 · 병합mergedmainfeat(chrome): 세팅 CS-4 후속 4종 — 교차 섹션 검색·palette 마커·빌트인 unbind·충돌 경고
ohah/maru#839생성 · 병합mergedmainfeat(chrome): 세팅 keybind unbind — Backspace로 사용자 단축키 해제
ohah/maru#838생성 · 병합mergedmainfeat(chrome): 세팅 env 변수 삭제 — Backspace로 제거 + line-removal write-back
ohah/maru#837생성 · 병합mergedmainfix(renderer): 키캡 컬러 렌더 완성 + 리뷰 후속 — isColorGlyph·복사·Reset 정합
ohah/maru#836병합mergedmainfeat(chrome): 세팅 폼 검색 — '/'로 현재 섹션 행 필터 (CS-4-4 후속)
ohah/maru#835병합mergedmainReset to Defaults 메뉴를 통합 리셋(파일 삭제)에 위임 — code-review #829 후속
ohah/zntc#4461생성 · 병합mergedmainci: CI 잡 수 축소 (test262 lexer 중복 제거, benchmark ubuntu-only, 문서 PR skip)