2026-06-22
요약 (AI 작성)
전날 세운 세팅 GUI를 실사용 수준으로 채워 넣은 날입니다. HSV 색 picker(SV 그리드+hue 스트립)와 폼 검색('/'), 좌측 섹션 키보드 네비(Tab/↑↓), Backspace로 keybind·env 삭제, FieldRow.disabled 비활성 행 표시를 붙이고, 테마 프리셋을 최상단에 두고 순환·활성 시 색 잠금을 구현했습니다. 여기에 window.opacity·cursor.blink-interval-ms·cursor.unfocused·scroll.multiplier·font.fallback(CoreText cascade)·input.option-as-meta·input.right-click·input.word-separators·osc52.read·window.unfocused-dim·mouse-hide-while-typing 등 config 필드를 대거 추가했습니다.
Reset to Defaults는 파일 삭제 대신 기본 상태 덮어쓰기로 바꾸고 atomic write·확인 모달·단일 resetAllSettings로 통일했습니다. 안정성 쪽에서는 스크롤백을 화면당 Scrollback 구조체로 분리해 alt 스크롤바 잔존을 근본 해결하고, 하향 트림 좌표 보정을 활성 화면으로 한정했으며, 글리프 baseline을 정수 픽셀로 스냅해 행간·크기별 v·w 흔들림을 없앴습니다. macOS 번들에 maru CLI를 포함해 Install CLI 실패도 바로잡았습니다.
커밋
ohah/maru
- fix(test): boundary 스캔 읽기 상한 1MB→2MB — app_session.zig가 1MB 초과
- feat(chrome): 세팅 폼 검색 — '/'로 현재 섹션 행 필터 (CS-4-4 후속)
- fix(macos): 글리프 baseline을 정수 픽셀로 스냅 — 행간/크기별 v·w 흔들림 제거
- fix(chrome): /code-review max #840 후속 — 다중-chord 액션 완전 unbind
- feat(chrome): 세팅 CS-4 후속 4종 — 교차 섹션 검색·palette 마커·빌트인 unbind·충돌 경고
- feat(config): URL 클릭 수식키 input.url-click-modifier (F1-5)
- feat(chrome): 세팅 HSV 색 picker — SV 그리드+hue 스트립, 임의 색 선택 (CS-4-6)
- docs(config): scroll.multiplier가 트래킹 앱에도 적용됨을 명시 — Ghostty 베이스
- [fix(chrome): HSV picker hue 셀↔값 가역화 — ''/']' stuck·마커 어긋남 (code-review max #1)
- feat(macos): Reset에 확인 모달 추가 + 통일 후속 문서 동기화
- refactor(macos): 두 리셋을 단일 resetAllSettings로 통일
- docs(macos): Reset to Defaults 통일 동작으로 주석·문서 동기화
- fix(macos): Reset to Defaults를 통합 리셋(파일 삭제)에 위임
- fix(renderer): 키캡 컬러 렌더 완성 + 리뷰 후속 — isColorGlyph·복사·Reset 정합
- fix(chrome): 세팅 모달 고정 너비 + rich 테마 깨짐 수정
- feat(chrome): displayCols의 짝 truncateToCols 추가
- feat(terminal): scrollback.lines 하향 시 즉시 트림 + 좌표 보정
- docs(macos): font.fallback cascade 명확화 주석 — bold 상속·per-shape 비용 (code-review max)
- docs(settings): scroll.on-output을 이미 구현(viewport pin)으로 정정 (F1-10)
- fix(terminal): 하향 트림 좌표 보정을 활성 화면으로 한정 + 정밀 dirty·dedup·OOM 일관성
- docs(config-gui): 세팅 키보드 네비(Tab/↑↓) 반영
- feat(chrome): 세팅 좌측 섹션 네비 키보드 이동 (Tab/↑↓)
- fix(chrome): 선택 행 slider/toggle 위젯이 하이라이트에 가려지는 문제 수정
- fix(macos): 사이드바 최소 너비를 헤더 아이콘 기반 동적 클램프로
- fix: /code-review max 후속 — 세션 3개 PR 결함 수정 (C1 컴파일·C2 포커스 redraw·C3 장식선 디밍)
- feat(chrome): 세팅 keybind unbind — Backspace로 사용자 단축키 해제
- feat(chrome): 세팅 env 변수 삭제 — Backspace로 제거 + line-removal write-back
- feat(window): window.unfocused-dim — 비활성 split pane 디밍 (F2-7)
- fix(chrome): rich 세팅 모달 선택 행 위젯이 하이라이트에 가려지는 문제 수정
- fix(macos-smoke): verifyCloseLifecycle에 io 인자 전달 — pty-metal-smoke 컴파일 복구
- feat(input): input.option-as-meta — Option을 Meta(Alt)로 토글 (F2-2)
- feat(cursor): cursor.unfocused — 창 포커스 잃을 때 block/hollow/hidden (F1-4b-2)
- fix(chrome): dropdown chevron 폭 예약 + 라벨 reserve 상향 (#860 후속)
- fix(build): macOS 번들에 maru CLI 포함 — Install CLI 실패 수정
- feat(config): 휠 스크롤 배수 scroll.multiplier (F1-10-1)
- feat(config): 커서 깜빡임 주기 cursor.blink-interval-ms (F1-4b-1)
- feat(config): 창 배경 투명도 window.opacity — clear color alpha (F1-1)
- docs(abi): reset_defaults 주석을 덮어쓰기로 동기화
- fix(macos): reset 결함 수정 — dirty 5개 폐기·createFileAtomic 계약·실패 notice
- feat(macos): Reset config 덮어쓰기를 atomic write + 디렉터리 보장으로 (#844 후속)
- feat(macos): Reset를 config 파일 삭제 대신 기본 상태로 덮어쓰기
- docs(config-gui): 테마 프리셋 최상단·사용자 지정·색 잠금 동작 반영
- feat(macos): 테마 프리셋 최상단·사용자 지정 순환·활성 시 색 잠금
- feat(chrome): 세팅 FieldRow.disabled — 비활성 행 회색·잠금 표시
- feat(config): 폴백 폰트 font.fallback — CoreText cascade list (F1-2)
- feat(config): 타이핑 중 마우스 숨김 input.mouse-hide-while-typing (F1-6)
- review: 리뷰 findings 전체 반영 — rewrap OOB 차단·setCap grow·dedup·방어 가드
- review: 문서/주석 정합 수정 + per-screen 스왑 불변식 테스트
- refactor(terminal): 스크롤백을 화면당 Scrollback 구조체로 분리 — alt 스크롤바 잔존 근본 해결
- fix(macos): mouse-hide-while-typing를 IME 확정 경로로 — 실제 타이핑에 동작 (code-review max)