2026-06-19
요약 (AI 작성)
iris 쪽에서는 JSON payload 생성·라운드트립 경로의 성능을 집중적으로 손봤습니다. Uint8Array·프로퍼티·숫자·분기·object-traversal 루프에 벌크 빠른 경로를 두루 채택하고, snapshot 문자열 복사를 제거하며 compact snapshot·layout detector까지 최적화했습니다.
maru는 config를 대폭 확장한 날입니다. theme.palette.0~15 ANSI 16색 override와 컬러 테마 프리셋(gruvbox·solarized·dracula·catppuccin 등 6종 + theme.preset), font.line-height·letter-spacing, 비대칭 window padding(top/right/bottom/left), scrollback.lines·bell.audible 등을 추가하고, 네이티브 메뉴에 Reload Config·Reset to Defaults를 넣었습니다. 입력 쪽은 파일/URL/텍스트 드래그앤드롭과 붙여넣기 경로 삽입, Cmd+K 화면+스크롤백 비우기, Cmd+]/[ split 순환을 붙였고, 데스크톱 알림은 TERM_PROGRAM=ghostty 주입으로 Claude/Codex 무설정 동작과 권한 선요청을 지원합니다. 렌더링에서는 OSC 133 거터 마크를 셀 바깥으로 빼 col 0 겹침을 없애고 CAMetalLayer를 sRGB로 태그했으며, 코어 안정성 측면에서 core_mutex 재진입 안전망(CoreOwner)과 IME 조합 확정 시 데드락, termLabel use-after-free를 잡고 terminfo(xterm-maru opt-in·XTVERSION·maru ssh 전파)까지 손봤습니다.
커밋
ohah/iris
- Uint8Array 루프 빠른 경로 채택
- Uint8Array 루프 벌크 빠른 경로 채택
- 프로퍼티 루프 벌크 빠른 경로 채택
- JS 계산 루프 빠른 경로 채택
- feat: JSON snapshot 경로로 round-trip 최적화
- feat: JSON 라운드트립 tail loop 최적화
- perf: JSON snapshot 문자열 복사 제거
- feat: JSON payload 생성 루프 빠른 경로 채택
- 분기 루프 벌크 빠른 경로 채택
- 숫자 루프 벌크 빠른 경로 채택
- feat: object-traversal 벌크 빠른 경로 채택
- JSON payload compact snapshot 최적화
- JSON payload layout detector 최적화
ohah/maru
- refactor(terminal): preedit 역방향 시프트를 @memmove로 (/simplify)
- fix(render): OSC 133 거터 마크를 셀 왼쪽 바깥으로 — col 0 글자 겹침 해소
- fix(config): /code-review max 후속 — OSC4 query 정합·docs 모순·loader 중복
- docs(config): window padding이 chrome 아닌 셀 그리드에만 적용됨을 반영
- fix(layout): window padding을 chrome이 아닌 셀 그리드에만 적용
- feat(config): scrollback.lines·bell.audible 설정 추가
- feat(config): font.line-height·letter-spacing(행간/자간) 추가
- feat(config): window padding을 비대칭(top/right/bottom/left)으로 + x/y alias
- feat(config): theme.palette.0~15 ANSI 16색 override 추가
- fix(chrome): 사이드바·탭 라벨을 라이브 OSC 제목으로 — 복원된 정적 surface.title 고정 해소
- feat(config): 네이티브 메뉴에 Reload Config·Reset to Defaults 추가
- fix(render): 거터 마크와 글자 사이 gap 추가 — 딱 붙지 않게
- fix(render): CAMetalLayer를 sRGB colorspace로 태그 — 디스플레이 색 정확도
- fix(input): /code-review max 후속 — Cmd+V paste 정책·shellEscape·카탈로그·docs
- [feat(input): Cmd+]/[ 를 split(pane) 순환으로, Term 순환은 Cmd+Opt+]/ 로
- fix(input): 드래그 삽입을 bracketed 없는 직접 입력으로(#2) — sendTextAsKeys 공유 + ABI v57
- feat(input): Cmd+K로 화면+스크롤백 비우기(clear_screen) — Ghostty 3분기
- docs(config): config 파일 parser·reload 현황 정합 + clear_screen 액션 등재
- feat(config): 컬러 테마 프리셋 theme.preset(maru|ghostty) 추가
- feat(input): 파일/URL/텍스트 드래그앤드롭 + 붙여넣기 경로 삽입
- fix(sidebar): 고정 탭을 최상위 영역에 모으고 드래그를 그룹 내로 제한
- fix(sidebar/render): /code-review high(684/685) 후속 5건
- feat(config): 컬러 테마 프리셋 6종 추가(gruvbox/solarized/dracula/catppuccin)
- [fix(input): 드래그앤드롭을 Cmd+V와 같은 paste 경로로 — TUI Image] 인식 복원 + send_text 제거(#2 정정)
- fix(input): IME 조합 확정 시 코어 락 재진입 데드락 수정
- fix: /code-review max 후속 — termLabel use-after-free + cleanup/문서/테스트
- test(boundary): core_mutex 직접 lock 호출 금지 가드
- feat(app): core_mutex 재진입 안전망(CoreOwner) 도입
- fix(notify): 알림 권한을 선요청으로 — OSC 9/777이 안 와도 권한 팝업이 먼저 뜨게
- feat(notify): TERM_PROGRAM=ghostty 주입 — Claude/Codex 무설정 데스크톱 알림