2026-06-17
요약 (AI 작성)
오늘(2026-06-17) ohah/maru에서는 렌더러 기능을 대폭 확장했다. box-drawing, block elements, Braille 글리프, powerline 그리고 Legacy Computing 기호들의 합성 글리프 렌더링을 완성했고, 합성 코드를 공유 픽셀 프리미티브로 정리하며 성능을 개선했다. 또한 스크롤바와 Find 기능을 각 pane 독립적으로 개선했고 terminal에서 Option+드래그로 블록 선택, 유니코드 케이스폴딩, Alt screen에서는 maru Find를 끄는 등 다양한 플랫폼 기능도 추가했다.
ohah.github.io에서는 index.mdx의 간격을 맞추고 hwpjs 기술 스택 문서의 표현을 간결하게 정정했다. suji에서는 suji://app/localfile 경로로 로컬 파일 서빙, Range 요청 지원, allowFileAccess 옵션, sqlite busy_timeout을 추가해 웹뷰 환경을 강화했다. 전반적으로 렌더러 코드 구조 개선과 작은 문서 수정 및 suji 기능 확장에 집중했다.
커밋
ohah/maru
- feat(app): Find ⌘G/⌘⇧G — 오버레이 닫힌 채 다음/이전 매치
- feat(config): 폰트 크기 step config화 + View 메뉴(Bigger/Smaller/Actual Size)
- feat(platform): 메뉴바 항목 — Services·Open Config·Find 서브메뉴
- feat(platform): 스크롤바 마우스 드래그 (thumb 잡고 끌어 스크롤)
- feat(terminal): 블록(직사각형) 선택 (Option+드래그)
- feat(config): set_font_size 절대 폰트 크기 지정 (config 바인딩)
- fix: code-review max 반영 (#593~#604 합본 리뷰)
- fix(renderer): 네이티브 셰이퍼가 합성 글리프(box/block)를 폰트 없어도 emit
- feat(platform): 커맨드 팝업에 Find 명령군 노출 (Find/Next/Previous)
- feat(terminal): Find 유니코드 케이스폴딩 (Latin-1·Greek·Cyrillic)
- feat(platform): per-pane 스크롤바 fade (각 pane 독립)
- feat(renderer): Box-drawing 글리프 합성 (이음매 없는 보더 ─│╭╮)
- feat(renderer): 둥근 모서리 box-drawing 실제 arc (╭╮╰╯)
- feat(platform): 스크롤바 굵게 + hover 강조 + idle fade
- feat(platform): alt screen에선 maru Find를 끔 (앱 자체 검색에 맡김)
- feat(renderer): Block Elements 글리프 합성 (이음매 없는 █▛▜▌)
- fix(renderer): 합성 글리프(box/block)를 폰트 글리프 없어도 그린다
- feat(platform): 비활성 pane 스크롤바 (faint 위치 표시)
- diag(renderer): box/block 합성 글리프 파이프라인 MARU_DEBUG 로깅
- feat(renderer): box-drawing heavy·dashed 합성 (━┃ ┏┓┣╋ ┄┅┆┇ ╌╍)
- feat(renderer): box-drawing double 합성 (═║ ╔╗╚╝ ╠╣╦╩ ╬)
- feat(renderer): box-drawing 혼합 굵기·반선 (per-arm Weight 수렴 — ┍┞╀ ╴╾)
- feat(renderer): box-drawing 대각선 ╱╲╳ 합성
- refactor(renderer): 합성 글리프 공유 픽셀 프리미티브로 중복 제거 (#7·#8·#9·#10)
- chore(renderer): box/block 합성 진단 도구 제거(회귀 해결 — stale 빌드였음)
- diag(renderer): box/block 합성 런타임 토글(MARU_NO_SYNTH) — 로고 흰색 회귀 A/B 격리
- fix(renderer): 합성 glyph(glyph_id==0)를 GlyphRunList 진입 게이트가 드롭하던 버그 — 보더의 진짜 원인
- feat(renderer): box-drawing single↔double 혼합 (╒╓ ╞╟ ╤╥ ╪╫) — U+2500~257F 전체 완료
- feat(renderer): Powerline 글리프 합성 (U+E0B0~E0BF 삼각형·반원 separator)
- feat(renderer): shade ░▒▓ 합성 (U+2591~2593, 셀 전체 균일 alpha)
- feat(renderer): 대각 hatch 합성 (U+1FB98/99 🮘╲·🮙╱ 평행 대각선 fill)
- refactor(renderer): 합성 코드 정리 (/simplify — dispatch 단일화·룩업 테이블·span 클램프)
- feat(renderer): Braille 글리프 합성 (U+2800~28FF, 2열×4행 8점 비트마스크)
- docs(font): 합성 글리프 cache_key·기하·공유 모듈 문서 정합 (#621~#623 후속)
- feat(renderer): Legacy Computing 블록 모자이크 합성 (sextant 2×3·octant 2×4)
- feat(renderer): Legacy Computing edge wedge·bowtie 합성 (U+1FB68~1FB6F·1FB9A/9B)
- feat(renderer): Legacy Computing smooth mosaic 합성 (U+1FB3C~1FB67, 대각 폴리곤 44개)
- fix(renderer): Powerline thin 반원 두께·혼합 이중-T stub 기하 보정 (#3·#4)
- fix(renderer): 합성 글리프 cache_key를 codepoint로 일원화 (#1·#2·#6)
- feat(renderer): 대각 corner 삼각형 합성 (◢◣◤◥ U+25E2
25E5·음영 🮜🮝🮞🮟 U+1FB9C9F) - feat(renderer): Legacy Computing 대각선 stroke 합성 (U+1FBA0
1FBAE·1FBD01FBDF) - fix(renderer): code-review max 후속 폴리시 (합성 술어 단일 출처·dedup·주석)
- feat(renderer): Powerline-extra 사다리꼴 separator 합성 (E0D2 우·E0D4 좌)
- docs(rename): 워크스페이스·Pane·Term 사용자 지정 이름 전략 추가
- feat(app): 워크스페이스·Pane·Term 사용자 지정 이름(custom_name) 모델·영속·라벨 해석
ohah/ohah.github.io
- [CRON] Fixed spacing in docs/index.mdx for conformity.
- fix: corrected expressions for conciseness in hwpjs tech stack doc