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

ohah/maru

PR (해당일 생성/머지)

repo#상태제목
ohah/maru#709mergedfeat(terminfo): opt-in xterm-maru terminfo(Sync·Tc) + 로컬 설치·검증
ohah/maru#708merged[NO-ISSUE] io-render-threading §6-5 구현 반영 + Phase 3(코어 mutate 위임) 설계
ohah/maru#707openfeat(cli): maru ssh 원격 terminfo 전파 — opt-in 래퍼(폴백·smoke)
ohah/maru#706closedfeat(terminfo): opt-in xterm-maru terminfo(Sync·Tc) + 로컬 설치·검증
ohah/maru#705mergedfeat(terminal): XTVERSION(CSI > q) 자기식별 — DCS로 maru 이름·버전 응답
ohah/maru#704merged[NO-ISSUE] 락 없는 코어 mutate 감지(assertOwnedBySelf) — 액터화 1단계 PR B
ohah/maru#703merged[NO-ISSUE] core_mutex 재진입 데드락 안전망(CoreOwner) — 액터화 1단계
ohah/maru#702mergedfix: /code-review max 후속 — termLabel use-after-free + cleanup·문서·테스트
ohah/maru#701mergedfeat(notify): TERM_PROGRAM=ghostty 주입 — Claude/Codex 무설정 데스크톱 알림
ohah/maru#700merged[NO-ISSUE] IME 조합 확정 시 코어 락 재진입 데드락 수정
ohah/maru#699mergedfix(notify): 알림 권한을 선요청으로 — OSC 9/777이 안 와도 권한 팝업이 먼저 뜨게
ohah/maru#698mergedfix(chrome): 사이드바·탭 라벨을 라이브 OSC 제목으로 — 복원된 정적 surface.title 고정 해소
ohah/maru#697mergedbuild(macos): 서명·공증·staple 자동화 macos-dmg 스텝 + 최소 macOS 11.0
ohah/maru#696mergedfix(input): 드래그앤드롭을 Cmd+V와 같은 paste 경로로 — TUI [Image] 인식 복원 + send_text 제거(#2 정정)
ohah/maru#695mergeddocs(config): config parser·reload 현황 정합 + clear_screen 액션 등재
ohah/maru#694mergedfeat(input): Cmd+K로 화면+스크롤백 비우기(clear_screen) — Ghostty 3분기
ohah/iris#81mergedJSON payload layout detector 최적화
ohah/iris#80mergedJSON payload compact snapshot 최적화
ohah/maru#693mergedfix(input): 드래그 삽입을 bracketed 없는 직접 입력으로(#2) — sendTextAsKeys + ABI v57
ohah/maru#692mergedfix(input): /code-review max 후속 — Cmd+V paste 정책·shellEscape·카탈로그·docs
ohah/maru#691mergedfeat(input): Cmd+]/[ 를 split(pane) 순환으로, Term 순환은 Cmd+Opt+]/[ 로
ohah/iris#79mergedJSON snapshot 문자열 복사 제거
ohah/iris#78mergedJSON 라운드트립 tail loop 최적화
ohah/maru#690mergedfeat(input): 파일/URL/텍스트 드래그앤드롭 + 붙여넣기 경로 삽입
ohah/iris#77mergedJSON snapshot 경로로 round-trip 최적화
ohah/maru#689mergedfix(render): CAMetalLayer를 sRGB colorspace로 태그 — 디스플레이 색 정확도
ohah/iris#76mergedobject-traversal 벌크 빠른 경로 채택
ohah/maru#688mergedfeat(config): 컬러 테마 프리셋 6종 추가(gruvbox/solarized/dracula/catppuccin)
ohah/iris#75mergedJSON payload 생성 루프 빠른 경로 채택
ohah/maru#687mergedfeat(config): 컬러 테마 프리셋 theme.preset(maru|ghostty) 추가
ohah/iris#74mergedJS 계산 루프 빠른 경로 채택
ohah/maru#686mergedfix(sidebar/render): /code-review high(684/685) 후속 5건
ohah/iris#73merged프로퍼티 루프 벌크 빠른 경로 채택
ohah/maru#685mergedfix(sidebar): 고정 탭을 최상위 영역에 모으고 드래그를 그룹 내로 제한
ohah/iris#72merged숫자 루프 벌크 빠른 경로 채택
ohah/maru#684mergedfix(render): 거터 마크와 글자 사이 gap 추가 — 딱 붙지 않게
ohah/maru#683mergedfeat(config): 네이티브 메뉴에 Reload Config·Reset to Defaults 추가
ohah/iris#71merged분기 루프 벌크 빠른 경로 채택
ohah/maru#682mergedfix(render): OSC 133 거터 마크를 셀 왼쪽 바깥으로 — col 0 글자 겹침 해소
ohah/iris#70mergedUint8Array 루프 벌크 빠른 경로 채택
ohah/maru#681mergedfix(config): /code-review max 후속 — OSC4 query 정합·docs 모순·loader 중복
ohah/iris#69mergedUint8Array 루프 빠른 경로 채택
ohah/maru#680mergedfeat(config): font.line-height·letter-spacing(행간/자간) 추가
ohah/maru#679mergedfeat(config): theme.palette.0~15 ANSI 16색 override 추가
ohah/maru#678mergedfeat(config): window padding을 비대칭(top/right/bottom/left)으로 + x/y alias
ohah/maru#677mergedfeat(config): scrollback.lines·bell.audible 설정 추가
ohah/maru#676mergedfix(layout): window padding을 chrome이 아닌 셀 그리드에만 적용
ohah/maru#675mergedrefactor(terminal): preedit 역방향 시프트를 @memmove로 (/simplify)