2026-06-17
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
maru는 스크롤바와 찾기 기능을 다듬으며 시작했습니다. 스크롤바 thumb 드래그(#593), 굵기·hover 강조·idle fade와 비활성 pane 표시, pane별 독립 fade(#599, #600, #603)가 들어왔고, Option+드래그 블록 선택(#594), 오버레이 없이 다음·이전 매치로 가는 ⌘G / ⌘⇧G(#595), Latin-1·그리스·키릴 문자 case folding(#601), alt screen에서 maru 찾기 끄기(#604)를 더했습니다. 메뉴바에 Services·Open Config·Find 항목을 넣고(#596), 폰트 크기 단계와 절대 크기 지정을 설정으로 열었습니다(#597, #598).
오후에는 폰트에 의존하지 않고 직접 그리는 합성 glyph를 넓혔습니다. Block Elements와 box-drawing, 둥근 모서리 arc(#606부터 #608까지)를 넣었는데 보더가 보이지 않는 문제가 생겨, 폰트에 glyph가 없어도 그리고 네이티브 셰이퍼와 GlyphRunList 진입 게이트가 합성 glyph를 버리지 않도록 고쳤습니다(#609, #610, #611). 로고가 흰색으로 보이던 회귀를 추적하려 진단 로그와 토글을 넣었다가 오래된 빌드 탓으로 확인하고 제거했습니다(#614). 이어 heavy·dashed, double, 혼합 굵기, 대각선, single·double 혼합으로 box-drawing 블록 전체를 채웠고(#615부터 #619까지), Powerline separator(#620), Braille(#625), shade, Legacy Computing 모자이크·wedge·smooth mosaic·대각 stroke·hatch, 대각 corner 삼각형, Powerline-extra 사다리꼴(#626부터 #634까지)이 뒤를 이었습니다. 리뷰 후속으로 cache key를 codepoint로 통일하고 공유 픽셀 프리미티브와 dispatch를 정리했습니다(#621, #623, #635).
밤부터는 워크스페이스·Pane·Term에 사용자 지정 이름을 붙이는 기능을 설계 문서(#636)와 함께 구현했습니다. 이름 모델과 영속(#637), 탭 바의 pane 라벨, 인라인 rename 편집기와 키 액션·커맨드 팔레트(#639), 더블클릭과 Zig 오버레이 우클릭 메뉴로 시작하기(#641, #642), 편집기 caret 깜빡임과 IME 후보창 위치가 들어왔고 리뷰 지적 8건을 고쳤습니다(#644). 셸을 처음부터 실제 창 크기로 띄워 zsh 첫 프롬프트의 % 잔상을 없앴고(#645), 코드 전반의 "dev" 이름을 app으로 바꿨으며(#647), 창 padding(#648), 사이드바의 git 브랜치 표시(#650), 우클릭 메뉴의 워크스페이스 고정·배경색(#651), claude·codex 에이전트 세션 표시(#652)를 추가했습니다.
suji는 웹뷰가 suji://app/__localfile__ 경로로 로컬 파일을 Range 요청과 함께 받을 수 있게 하고 allowFileAccess 옵션과 sqlite busy_timeout을 넣었습니다. 영상 전용 suji-video:// 스킴과 그 CSP·CORS 설정을 추가했고, backends 아래 Mach-O를 재귀적으로 서명해 공증을 통과하게 했습니다. 블로그 저장소에는 오늘의 커밋 요약과 크론 교정 커밋이 올라갔습니다.
공개 커밋 68개, 해당일 생성 또는 병합된 PR 60개를 정리했습니다. PR 생성 60개·병합 60개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- feat(app-host): 사이드바에 에이전트(claude/codex) 세션 심볼 표시
- feat(app-host): 우클릭 메뉴에 워크스페이스 위치 고정·배경색 (영속)
- feat(app-host): 사이드바 워크스페이스에 git 브랜치 표시 (⎇ {branch})
- fix(app-host): app_host_abi.h 주석의 '/* within block comment' clang 워닝 제거
- feat(app-host): 터미널 window padding (window.padding-x=8/y=4 기본)
- refactor(app-host): "dev" 네이밍을 app으로 전면 rename (코드·바이너리·스텝·문서)
- chore(app-host): spawn-size MARU_DEBUG 관측 로그 + 2x spawn grid 회귀 테스트
- fix(app-host): 셸을 처음부터 실제 창 크기로 spawn (zsh 첫 프롬프트 % 잔상 제거)
- fix(app): /code-review max 지적 8건 수정 (rename 기능)
- feat(app): rename 인라인 caret 깜빡임 + IME 후보창을 편집기 caret에 배치
- feat(app): Zig 오버레이 우클릭 컨텍스트 메뉴로 rename 시작
- feat(app): 더블클릭으로 워크스페이스·Pane·Term rename 시작
- fix(macos): workspace 복원 파싱 실패 시 notice 없이 조용히 기본 창으로 시작
- feat(app): 인라인 rename 편집기 + 키 액션 + 커맨드 팔릿
- feat(renderer): pane 라벨 세그먼트 — 탭 바 좌측에 사용자 지정 이름 표시
- feat(app): 워크스페이스·Pane·Term 사용자 지정 이름(custom_name) 모델·영속·라벨 해석
- docs(rename): 워크스페이스·Pane·Term 사용자 지정 이름 전략 추가
- refactor(renderer): 합성 코드 정리 (/simplify — dispatch 단일화·룩업 테이블·span 클램프)
- feat(renderer): Powerline-extra 사다리꼴 separator 합성 (E0D2 우·E0D4 좌)
- fix(renderer): code-review max 후속 폴리시 (합성 술어 단일 출처·dedup·주석)
- feat(renderer): 대각 hatch 합성 (U+1FB98/99 🮘╲·🮙╱ 평행 대각선 fill)
- feat(renderer): Legacy Computing 대각선 stroke 합성 (U+1FBA0~1FBAE·1FBD0~1FBDF)
- feat(renderer): 대각 corner 삼각형 합성 (◢◣◤◥ U+25E2~25E5·음영 🮜🮝🮞🮟 U+1FB9C~9F)
- feat(renderer): Legacy Computing smooth mosaic 합성 (U+1FB3C~1FB67, 대각 폴리곤 44개)
- feat(renderer): Legacy Computing edge wedge·bowtie 합성 (U+1FB68~1FB6F·1FB9A/9B)
- feat(renderer): Legacy Computing 블록 모자이크 합성 (sextant 2×3·octant 2×4)
- feat(renderer): shade ░▒▓ 합성 (U+2591~2593, 셀 전체 균일 alpha)
- feat(renderer): Braille 글리프 합성 (U+2800~28FF, 2열×4행 8점 비트마스크)
- docs(font): 합성 글리프 cache_key·기하·공유 모듈 문서 정합 (#621~#623 후속)
- refactor(renderer): 합성 글리프 공유 픽셀 프리미티브로 중복 제거 (#7·#8·#9·#10)
- fix(renderer): Powerline thin 반원 두께·혼합 이중-T stub 기하 보정 (#3·#4)
- fix(renderer): 합성 글리프 cache_key를 codepoint로 일원화 (#1·#2·#6)
- feat(renderer): Powerline 글리프 합성 (U+E0B0~E0BF 삼각형·반원 separator)
- feat(renderer): box-drawing single↔double 혼합 (╒╓ ╞╟ ╤╥ ╪╫) — U+2500~257F 전체 완료
- feat(renderer): box-drawing 대각선 ╱╲╳ 합성
- feat(renderer): box-drawing 혼합 굵기·반선 (per-arm Weight 수렴 — ┍┞╀ ╴╾)
- feat(renderer): box-drawing double 합성 (═║ ╔╗╚╝ ╠╣╦╩ ╬)
- feat(renderer): box-drawing heavy·dashed 합성 (━┃ ┏┓┣╋ ┄┅┆┇ ╌╍)
- chore(renderer): box/block 합성 진단 도구 제거(회귀 해결 — stale 빌드였음)
- diag(renderer): box/block 합성 런타임 토글(MARU_NO_SYNTH) — 로고 흰색 회귀 A/B 격리
- diag(renderer): box/block 합성 글리프 파이프라인 MARU_DEBUG 로깅
- fix(renderer): 합성 glyph(glyph_id==0)를 GlyphRunList 진입 게이트가 드롭하던 버그 — 보더의 진짜 원인
- fix(renderer): 네이티브 셰이퍼가 합성 글리프(box/block)를 폰트 없어도 emit
- fix(renderer): 합성 글리프(box/block)를 폰트 글리프 없어도 그린다
- feat(renderer): 둥근 모서리 box-drawing 실제 arc (╭╮╰╯)
- feat(renderer): Box-drawing 글리프 합성 (이음매 없는 보더 ─│╭╮)
- feat(renderer): Block Elements 글리프 합성 (이음매 없는 █▛▜▌)
- fix: code-review max 반영 (#593~#604 합본 리뷰)
- feat(platform): alt screen에선 maru Find를 끔 (앱 자체 검색에 맡김)
- feat(platform): per-pane 스크롤바 fade (각 pane 독립)
- feat(platform): 커맨드 팝업에 Find 명령군 노출 (Find/Next/Previous)
- feat(terminal): Find 유니코드 케이스폴딩 (Latin-1·Greek·Cyrillic)
- feat(platform): 비활성 pane 스크롤바 (faint 위치 표시)
- feat(platform): 스크롤바 굵게 + hover 강조 + idle fade
- feat(config): set_font_size 절대 폰트 크기 지정 (config 바인딩)
- feat(config): 폰트 크기 step config화 + View 메뉴(Bigger/Smaller/Actual Size)
- feat(platform): 메뉴바 항목 — Services·Open Config·Find 서브메뉴
- feat(app): Find ⌘G/⌘⇧G — 오버레이 닫힌 채 다음/이전 매치
- feat(terminal): 블록(직사각형) 선택 (Option+드래그)
- feat(platform): 스크롤바 마우스 드래그 (thumb 잡고 끌어 스크롤)
ohah/ohah.github.io
- Fix minor grammar in docs/index.mdx
- docs: 2026-06-17 블로그 커밋 요약 및 활동 정리
- fix: corrected expressions for conciseness in hwpjs tech stack doc
- [CRON] Fixed spacing in docs/index.mdx for conformity.
ohah/suji
- feat: suji-video 스킴 CSP(media/connect-src) + 교차출처 fetch CORS(ACAO)
- chore: 잘못 커밋된 빈 임시파일(.!NNN!cef_scheme.zig) 제거
- feat: suji-video:// 영상 전용 스킴 + backends 재귀 Mach-O 서명(공증 통과)
- feat: webview 로컬파일 서빙(suji://app/localfile)+Range, allowFileAccess 옵션, sqlite busy_timeout
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.